長さが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
ですか?