将结构传递给函数并循环遍历它

时间:2015-01-02 16:00:10

标签: c struct

尝试将结构传递给函数并浏览它。这是将结构传递给函数的正确方法吗?函数视图()中的for循环似乎不起作用。任何帮助也将不胜感激。

我的结构:

typedef struct {
    char name[20];
    employee *list_employees;
    int empl_count;
} agency;
typedef struct {
    char name[30];
    int age;

} employee;

代码的重要部分:

int main()
{
//...
int nmbr_agencies;
agency *list_agencies = malloc(sizeof(agency) * nmbr_agencies);
view(&list_agencies, &nmbr_agencies);
}
void view(agence *ListA[], int *nmbr)
{
    int i=0;
    for (i = 0; i < *nmbr; i++){
        printf("name of agency: %s\n", ListeA[i]->name);
        printf("number of employees\n, ListeA[i]->empl_count);
    }
}

1 个答案:

答案 0 :(得分:2)

没有

如果你拥有的话,你应该只传递一个数组,而不是假装(在通话中)你有一个你没有的指针数组。

制作功能:

void view(const agency *list, size_t number);

并称之为:

view(list_agencies, nmbr_agencies);

然后在函数内部进行直接访问:

printf("name of agency: %s\n", list[i].name);

因为你没有有一系列指针。