【发布时间】:2021-02-13 04:08:25
【问题描述】:
我有一个这样的结构
struct Patient {
char* name;
char* address;
char* socialSecurityNumber;
char* typeOfExamination;
bool isExpress;
}
我必须从一个 txt 文件中填充这个结构的动态数组,如下所示: (分隔符:“;”)
Andrew;Address street first;123;pulmonary;1
Matthew;Address street second;456;COVID;0
Lisa;Address street third;789;rectum;0
打开文件并读取文件后:
while (fgets(line, 255, (FILE*) fPtr)) {
char *p = strtok (line, ";");
patients[i].name=(char*)malloc(sizeof(char*));
strcpy(patients[i].name, p);
p = strtok (NULL, ";");
patients[i].address=(char*)malloc(sizeof(char*));
strcpy(patients[i].address, p);
...
i++;
}
在第二个 malloc/strcpy 之后,我得到一个 sysmalloc: Assertion failed 错误
我做错了什么?
【问题讨论】:
-
或
parients[i].name=strdup(p);,如果您的系统支持strdup()。