目标:向用户询问机构的数量,创建所说的机构,并为每个机构询问雇员的数量,并创建这些雇员。
我认为,这部分需要嵌套结构,例如
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/