構造体の配列を動的に作成する方法は?
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);
うまくいきましたが、正確に何が起こっているのかわかりません。