struct book *a = malloc(2 *sizeof(struct book));
if (a == NULL)
{
printf("Error\n");
return 1;
}
struct book *p = a;
for(i=0; i<2; ++i){
printf("Give the titel of no. %d book\n", i+1 );
scanf("%s", *p->titel);
++p;
}
代码没有任何错误或警告,但是一旦我输入第一本书的标题并继续到第二本书就会粉碎。 '++ p'有什么问题?
答案 0 :(得分:0)
我怀疑scanf("%s", *p->titel);
应该写成scanf("%s", p->titel);
,假设 book.titel 是一个char数组。这可以解释你观察到的行为。
你可以查一下吗?