devxlogo

How to dynamically allocate a 2D array using new operator

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 

devx-admin

Share the Post: