从函数创建和输入结构数组

时间:2014-11-28 18:58:54

标签: c struct

我有一个函数,它会将一个结构指针从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认为问题是结构数组的解决,但我不确定。

感谢。

0 个答案:

没有答案