0

構造体の配列を動的に作成する方法は?

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);

うまくいきましたが、正確に何が起こっているのかわかりません。

4

3 に答える 3