I have a pointer to a dynamically allocated 2-D array and am trying to print array values through dereferencing the pointer. Somehow, some of the array indices are showing garbage values even though I initialized them all to 1. Any insight into what I am doing wrong would be appreciated.
int main() {
int (*ptr)[4][4];
int** array;
array = new int*[4];
for (int i = 0; i < 4; i++)
{
array[i] = new int[4];
}
ptr = (int(*)[4][4])(*array);
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
array[i][j] = 1;
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; ++j)
{
cout<<"Val "<<*ptr[i][j]<<" And index "<<i<<" and "<<j<<endl;
}
}
return 0; }
My output:
Val 1 And index 0 and 0
Val 0 And index 0 and 1
Val 1 And index 0 and 2
Val 0 And index 0 and 3
Val 1 And index 1 and 0
Val 0 And index 1 and 1
Val 1 And index 1 and 2
Val 0 And index 1 and 3
Val 543973718 And index 2 and 0
Val 1852383332 And index 2 and 1
Val 10 And index 2 and 2
Val 0 And index 2 and 3
Val 0 And index 3 and 0
Val 0 And index 3 and 1
Val 0 And index 3 and 2
Val 0 And index 3 and 3