目标:向用户询问机构的数量,创建所说的机构,并为每个机构询问雇员的数量,并创建这些雇员。

我认为,这部分需要嵌套结构,例如

typedef struct agence agence;
struct agence
{
    char nom[20];
    int nmbrEmp;
    struct employe
    {
        char mat[20];
        int nmbrEnf;
        int ANC;
        double SB;
        double RCNSS;
    }
};


这是正确的路径吗?一旦用户给您每个机构所需的人数,您如何继续创建机构/雇员人数。

最佳答案

与C ++不同,C不能具有嵌套类型,您必须分别声明它们。

struct employe
{
    char mat[20];
    int nmbrEnf;
    int ANC;
    double SB;
    double RCNSS;
};

struct agence
{
    char nom[20];
    int nmbrEmp;
    struct employe * employees; // pointer to an array of employees
};


然后使用动态内存并填充它们:

struct agence * agencies;
size_t num_agencies = 100;

agencies = calloc(sizeof(*agencies), num_agencies);

for (/* read egancies somehow */) {
    agencies[i].nmbrEmp = number_employees;
    agencies[i].employees = calloc(sizeof(agencies[i].employees[0]), number_employees);

    // write agencies[i].employees[j] ...
}

关于c - C中的嵌套结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27104731/

10-11 23:06