我得到分割故障時,我通過這個2-d指針數組段故障〜2-d指針數組循環
聲明循環:
char **addr;
addr=malloc((y)*sizeof(char)); //y is 3
for(i=0;i<y;i++)
{
*(addr+i)=malloc(x*sizeof(char)); //x is 100
}
獨立訪問的工作原理:
*(*(addr+2)+0)='a';
printf("%c\n",*(*(addr+2)+0));
循環返回addr [2] [0]處的分段故障,而不管y和x是什麼
for(j=0;j<x;j++)
{
for(i=0;i<y;i++)
{
printf("%d %d\n",j,i);
*(*(addr+j)+i)='a';
}
}
+1一般用來做這兩種方法的,,我比較喜歡這一個僅僅是因爲它對你的指針所處的任何間接級別都是通用的。這條線對於單人,三人,無論如何都是一樣的。 – WhozCraig