【发布时间】:2018-01-22 17:47:30
【问题描述】:
我动态分配了一个数组(unsigned int n 可能已作为函数中的参数传递):
int * ar = new int [n];
当我用完它时:
delete [] ar;
但是,n = 0 会发生什么?
allocate 0 ints 和根本不分配一样吗?
在这种情况下,当我打电话给delete 时会发生坏事吗?
【问题讨论】:
-
stackoverflow.com/questions/1087042/… 你确实分配了一些东西(至少用于管理你的分配的数据)——这和什么都不做是不一样的。
-
@deviantfan -- 我的错!我没有找到任何重复的内容,因为我的措辞是“你能
delete0”,而你的链接将它写成“你能new0”(最后,这有点像) .我应该删除这个 Q 吗? -
使用 std::vector!
-
@FineMan 我不认为你可以......无论如何,重复至少有助于其他人找到这个,然后点击链接。你也在这里得到了答案。不用担心。
-
@deviantfan -- 好点。
:)
标签: c++ arrays memory-management dynamic