我有一个函数,它会将一个结构指针从main函数分配到一个struct数组中,并使用scanf我想将数据输入到struct中。
这是结构:
struct contact
{
int id;
};
这就是功能。
int add(struct contact **etc)
{
int no, i;
printf("How many?\n");
scanf("%d", &no);
*etc = (struct contact*) malloc(no * sizeof(struct contact));
for(i = 0; i < no; i++)
{
printf("Id of student %d, in order\n", i + 1);
scanf("%d", &(etc[i]->id));
}
return no;
}
及主要功能的相关代码
struct contact *etc;
int no;
no = add(&etc);
然而,在第一次输入后,我似乎正在尝试访问一个未分配的区域。但我分配了area.I认为问题是结构数组的解决,但我不确定。
感谢。