void addWorkerToProject(Worker *worker, Project *project) {
worker->projects = malloc(sizeof (strlen(project)+1));
worker->projects[worker->projectCount]->name = project->name;
worker->projectCount++;
}
struct Worker
char *name;
Project **projects;
int projectCount;
struct Project
char *name;
Worker **workers;
int workerCount;
FeatureNode *features;
如何让这个功能正确运行?它应该将工作人员分配给项目,但未能将 2 个项目分配给同一个工作人员。感谢您的帮助(:
假设我有一个名叫肖恩的工人,有两个项目分别名为第一和第二。我需要将它们附加到肖恩,例如当我打印workers[i]->projects[j]->name时,当每次迭代为他添加1个项目时,它们都需要出现。 rn 当我运行它时,第一次迭代是正确的,但第二次迭代不起作用。
您的代码存在多个问题。
malloc(sizeof (strlen(project)+1))
将始终返回整数的大小。即 4 字节/8 字节,具体取决于您的机器/操作系统。
我觉得你想做的事情如下:
void addWorkerToProject(Worker *worker, Project *project) {
worker->projects[worker->projectCount] = malloc(sizeof(Project));
worker->projects[worker->projectCount]->name = project->name;
worker->projectCount++;
}