1
分配時的多層次,然後試圖訪問指針數組的指針時:賽格故障使用間接
void tester(char ***p)
{
int i;
char **pp;
pp = *p;
pp = calloc(10, sizeof(*pp));
for (i = 0; i < 10; i++)
printf("%d = %p\n", i, pp[i]);
*p = pp;
}
void tester_broken(char ***p)
{
int i;
*p = calloc(10, sizeof(**p));
for (i = 0; i < 10; i++)
printf("%d = %p\n", i, *p[i]);
}
int main(void)
{
char **a;
tester(&a);
tester_broken(&a);
return 0;
}
任何人都可以解釋爲什麼這些作品和其他賽格故障之一?
嘿,這是[三星程序員](http://www.c2.com/cgi/wiki?ThreeStarProgrammer):-) – Praetorian