Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to 2d array initial to 0

Tags:

c++

int array2d[3][5]{};

for (auto& iter1 : array2d)
{
    cout << "iter1 in 2d array - " << iter1 << endl;
    for (auto& iter2 : iter1)
    {
        cout << "iter2 in 2d array - " << iter2 << endl;
    }
}

Result

iter1 in 2d array - 00CFFCB4
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter1 in 2d array - 00CFFCC8
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter1 in 2d array - 00CFFCDC
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0
iter2 in 2d array - 0

How to 2d array initial to 0??

like image 559
Hyukki Kwon Avatar asked Dec 22 '25 03:12

Hyukki Kwon


1 Answers

Your 2d array does have all elements initialized to zero! This is shown by the fact that there are fifteen lines in your output of the form iter2 in 2d array - 0.

The non-zero outputs for iter1 are actually addresses: the type of iter1 is int (&iter1)[5] - which is, for each outer loop, the address of each of the three 'rows' of the 2d array.

like image 160
Adrian Mole Avatar answered Dec 23 '25 15:12

Adrian Mole