Question:
What is the proper way to dynamically allocate a 2D array using the new operator?
Here’s a code fragment:
int num = 50;int **stuff;stuff = new int[num][num];My compiler (g++) returns the following error:
assignment to ‘int **’ from ‘int (*) [1]’
Answer:
Just as in C, C++ has no multidimensional arrays, only arrays of arrays.You must construct the array of arrays first and then assign the innerarray to each outer element. Here is an example:
int num = 50;int **stuff;stuff = new int* [num];for (int i = 0 ; i < num ; ++i) stuff[i] = new int [num];