我使用这个结构。
typedef struct {
char *title;
char *description;
int idNumber;
char* tvProducer;
DateTime startTime, endTime;
EventType subjects;
} EmmissionType;
void Emmission_read(FILE* f, EmmissionType* Emmission) {
EmmissionType * temp;
temp=Emmission;
temp->title = (char*) malloc(sizeof(char) * 100);
...
这里程序崩溃,调试器回复消息。
编程接收信号SIGSEGV,分段故障 下一行并不重要。我改变了下一个命令,没有发生任何事情
编辑:
第一个参数是用于读取的打开文件指针,第二个参数是指向获取数据的变量的指针
void Top_read(FILE* f, TVNodeType head) {
TVNodeType ptr;
ptr = head;
int ekp, i;
fscanf(f, "<%d>\n", &ekp);
//Edw 3erw poses ekpompes exw kai 8a ftia3w ena struct gia tin ka8e mia
// system("pause");
Emmission_read(f, ptr->anEmmission);
ptr->next = NULL;
for (i = 1; i < ekp; i++) {
ptr->next = mallocwarp(sizeof(TVNodeType*));
ptr = ptr->next;
// system("pause");
printf("Hello\n");
Emmission_read(f, ptr->anEmmission);
ptr->next = NULL;
// system("pause");
}
printf(" Top read\n");
}
现在main只读取数据
int main() {
FILE *f = NULL;
f = fopen("input.txt", "r");
TVNodeType listaPtr = NULL;
listaPtr = (TVNodeType) mallocwarp(sizeof(struct TVNodeStruct));
Top_read(f, listaPtr);
return 0;
}
答案 0 :(得分:2)
listaPtr->anEmmission
是指针,似乎没有被初始化为指向任何有效的内存。
所以在这里取消引用它的价值
temp->title = ...
访问title
会引发未定义的行为。