微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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方式,因为而不是总是指针类型而不是零.

原文地址:https://www.jb51.cc/c/116428.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐