我试图通过分配一个指针来打印一个二维数组。有了这个,我可以很好地打印一维,但二维会导致分段错误。
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)
如果我可以通过分配(我可以打印)访问一维数组 ,那么为什么我不能访问二维数组?访问2D array时出现分段错误。(sa)
int *sa = singleArray;
sa[i]
(da) int **da = dualArray;
有人请告诉我原因。谢谢。