Как создать массив структур динамически?динамическое создание массива структур
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("%d %f",&(&p[i])->a,&(&p[i])->b);
и Printf этому
printf(("%d %f",(&p[i])->a,(&p[i])->b);
, и она работала, но я не знаю, что именно происходит.
'SizeOf (2 * struct arr) 'недействителен. Вы хотите '2 * sizeof (struct arr)' – lurker
Хороший catch @mbratch. Это тоже вызовет UB. –