【发布时间】:2014-09-26 00:23:23
【问题描述】:
这是显示读取的字符串的显示函数。
void print(char **s,int T)
{
while(*s)
{
printf("i: String : %s\n",*s++);
}
}
int main()
{
int T =0,i=0;
char ** s, *c;
printf("Enter number of Testcases:\n");
scanf("%d",&T);
s = (char **)malloc(T*sizeof(char *));
printf("Size allocated : %lu\n",sizeof(s));
while(i++ < T)
{
s= (char *)malloc(10000*sizeof(char));
scanf("%s",*s++);
}
print(s,T);
return 0;
}
【问题讨论】:
-
1)
sizeof(s)大小为char **,未分配大小。 2)s重写s= (char *)malloc(10000*sizeof(char));3)print(s,T);:s是最后一个或某处。 -
4)
while(*s): 它没有被额外保护为 NULL。
标签: c double-pointer char-pointer