How to dynamically allocate a 2D array using new operator

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];

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: