Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Jul 18, 1997

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 inner array 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];
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date