我有一个非常大的数组,必须长度为262144个元素(未来可能更大)。我已尝试像这样在栈上分配数组:
#define SIZE 262144
int myArray[SIZE];
然而,当我尝试添加超过某个点的元素时,似乎访问它们的值会不同。我明白这是因为栈上只有有限的内存,而堆上有更多的内存。
我已经尝试了以下方法,但并没有取得太大的成功(无法编译):
#define SIZE 262144
int *myArray[SIZE] = new int[SIZE];
然后我考虑使用 malloc
,但我想知道是否有更符合C++的方式来做这件事...
#define SIZE 262144
int *myArray = (int*)malloc(sizeof(int) * SIZE);
我应该只使用 malloc
吗?