У меня очень большой массив, который должен быть длиной 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
?