I have a very large array which must be 262144 elements in length (and potentially much larger in future). I have tried allocating the array on the stack like so:
#define SIZE 262144
int myArray[SIZE];
However, it appears that when I try and add elements past a certain point, the values are different when I try to access them. I understand that this is because there is only a finite amount of memory on the stack, as opposed to the heap which has more memory.
I have tried the following without much luck (does not compile):
#define SIZE 262144
int *myArray[SIZE] = new int[SIZE];
And then I considered using malloc
, but I was wondering if there was a more C++ like way of doing this...
#define SIZE 262144
int *myArray = (int*)malloc(sizeof(int) * SIZE);
Should I just go with malloc
?