I am trying to print a two dimensional array by assigning to a pointer. With this I can print one dimensional fine, but 2 dimensional causes a segmentation fault.
void printOutput(int **array,int row, int col)
{
int i = 0, j = 0;
int dualArray[2][2] = {{1,2},{3,4}};
int singleArray[]={1,2,3};
int *sa = singleArray;
printf ("Output values :\n");
for(i=0;i<3;i++)
printf("%d ",sa[i]);
printf("\n");
int **da = dualArray;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
printf("%d ",da[i][j]);
}
printf("\n");
}
}
Output values :
1 2 3
Segmentation fault (core dumped)
If I can access 1D array (sa) by assigning int *sa = singleArray; (I can print sa[i]), then why cannot I access a 2D array (da) int **da = dualArray;? I get a segmentation fault when I access a 2D array.
Someone please let me know the reason. Thanks.