在C中将对象数组设置为null

前端之家收集整理的这篇文章主要介绍了在C中将对象数组设置为null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我在C中有一个Foo类型的对象数组:
Foo array[10];

在Java中,我可以通过以下方式将此数组中的对象设置为null:

array[0] = null //the first one

我怎么能在C中这样做?

解决方法

改为使用指针:
Foo *array[10];

// Dynamically allocate the memory for the element in `array[0]`
array[0] = new Foo();
array[1] = new Foo();

...

// Make sure you free the memory before setting 
// the array element to point to null
delete array[1]; 
delete array[0]; 

// Set the pointer in `array[0]` to point to nullptr
array[1] = nullptr;
array[0] = nullptr;

// Note the above frees the memory allocated for the first element then
// sets its pointer to nullptr. You'll have to do this for the rest of the array
// if you want to set the entire array to nullptr.

请注意,您需要考虑C中的内存管理,因为与Java不同,它没有垃圾收集器,当您设置对nullptr的引用时,垃圾收集器会自动为您清理内存.此外,nullptr是现代和适当的C方式,因为而不是总是指针类型而不是零.

猜你在找的C&C++相关文章