Processing math: 100%
Skip to main content
Library homepage
 

Text Color

Text Size

 

Margin Size

 

Font Type

Enable Dyslexic Font
Engineering LibreTexts

3.3: Multidimensional Arrays

( \newcommand{\kernel}{\mathrm{null}\,}\)

Multidimensional arrays in C++

In C/C++, initialization of a multidimensional arrays can have left most dimension as optional. Except the left most dimension, all other dimensions must be specified.

For example, following program fails in compilation. There are 3 dimensions in the declaration of the array [][][2] - two dimensions are not specified, and this will cause a compiler error.

#include <iostream>
using namespace std;
int main() 
{ 
   int a[][][2] = { {{1, 2}, {3, 4}}, 
                    {{5, 6}, {7, 8}} 
                  }; // error 
   cout << "Sizeof the array " << sizeof(a)) << endl; 

   return 0; 
} 

The following 2 programs work without any error. The cout statement prints 4 times the sizeof an int - because the array has 4 members.

// Program 1 
#include <iostream>
using namespace std; 
int main() 
{ 
   int a[][2] = {{1,2},{3,4}}; // Works 
   cout << "Sizeof the array " << sizeof(a)) << endl;
   return 0; 
} 

The following works, BECAUSE there are now 2  of the dimensions specified. The cout statement prints 8 times the sizeof an int - because the array has 8 members.

// Program 2 
#include<stdio.h> 
int main() 
{ 
   int a[][2][2] = { {{1, 2}, {3, 4}}, 
                     {{5, 6}, {7, 8}} 
                   }; // Works 
   cout << "Sizeof the array " << sizeof(a)) << endl;
   return 0; 
} 

Hopefully this provides some clarification on how code can determine the size of an array.

Adapted from:
"Initialization of a multidimensional arrays in C/C++" by HassanAliGeeks for Geeks is licensed under CC BY-SA 4.0


3.3: Multidimensional Arrays is shared under a not declared license and was authored, remixed, and/or curated by LibreTexts.

Support Center

How can we help?