C程序中某种内存错误



我使用此结构。

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("Hellon");
    Emmission_read(f, ptr->anEmmission);
    ptr->next = NULL;
    // system("pause");
}
printf(" Top readn");
}

现在主要读取数据

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;
}

listaPtr->anEmmission是指针,似乎并未初始化以指向任何有效的内存。

因此,在这里撤销了其价值

temp->title = ...

访问title挑衅不确定的行为。

相关内容

  • 没有找到相关文章

最新更新