
When using C++, you cannot store large arrays in the stack, so you should use the heap memory. You do so by e.g. using the new keyword and using a pointer to the reserved memory in the heap.
Problems emerge when you have to use multidimensional arrays. I could not find elegant solutions that matched my personal taste. For example, see the solutions on Stack Overflow. So here is my solution:
struct array { int v[42][42]; };
array * sim = new array;
// initialize int array values to zero for (int i=0; i<42; i++) { for (int j=0; j<42; j++) { sim->v[i][j] = 0; } }
This worked for me and I liked the syntax better than the other solutions, but YMMV.