如何动态创建结构数组?
struct arr
{
int a;
float b;
} *p;
p = (struct arr *)malloc(2*sizeof(struct arr));
for (i = 0; i < 2; i++)
{
scanf("%d %f", &p[i]->a, &p[i]->b);
}
for (i = 0; i < 2; i++)
{
printf("%d %f", p[i]->a, p[i]->b);
}
此代码不起作用并产生错误。我对此进行了 scanf 编辑,
scanf("%d %f",&(&p[i])->a,&(&p[i])->b);
和 printf 到这个,
printf(("%d %f",(&p[i])->a,(&p[i])->b);
它有效,但我不知道到底发生了什么。