为数组分配空间

Posted

技术标签:

【中文标题】为数组分配空间【英文标题】:Allocating space for an array 【发布时间】:2017-03-01 04:01:39 【问题描述】:

我有一个动态分配整数数组的 C++ 程序。在下面的最后一个函数中,我不知道如何,new int[*arrPtr]; 是我在阅读指针章节后想到的,它编译正确,但程序崩溃。任何人都可以看看我的代码并指出我正确的方向吗?

非常感谢您在此问题上提供的任何帮助,非常感谢您抽出宝贵时间。

【问题讨论】:

int * arrPtr = nullptr; *arrPtr 尝试获取地址 0x0 处的内存内容并将其解释为整数。此内存不属于您的程序,操作系统会因为您尝试使用无效内存而终止您的程序。 【参考方案1】:

不是

new int[*arrPtr]

这是

arrPtr = new int[num]; //num is the size of the array.

【讨论】:

..或者只使用 std::vector @xaxxon 我同意向量更好玩,但是“使用命名空间 std;”这一行让我相信这是关于指针的课堂练习。 或者它可能只是为了简化测试用例。不要根据测试用例的语法来判断 - 记住,它应该尽可能地被剥离。

以上是关于为数组分配空间的主要内容,如果未能解决你的问题,请参考以下文章

如何释放为数组分配的内存?

如何为数组分配双指针? C/C++

java-数组

Java 中数组的内存分配

我的Java——数组

第5章 Java数组