指向struct array increment的指针失败

时间:2017-01-14 14:57:06

标签: c arrays pointers struct

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'有什么问题?

1 个答案:

答案 0 :(得分:0)

我怀疑scanf("%s", *p->titel);应该写成scanf("%s", p->titel);,假设 book.titel 是一个char数组。这可以解释你观察到的行为。

你可以查一下吗?