Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 程序编译时不会出错,但在执行过程中会出错_C_Pointers_Struct_Segmentation Fault_Dynamic Memory Allocation - Fatal编程技术网

C 程序编译时不会出错,但在执行过程中会出错

C 程序编译时不会出错,但在执行过程中会出错,c,pointers,struct,segmentation-fault,dynamic-memory-allocation,C,Pointers,Struct,Segmentation Fault,Dynamic Memory Allocation,下面的代码编译得很好,但是当我运行它时,它会进入while循环,然后SegFaults。输入文件是一个CSV文件。这个程序应该从CSV文件中获取数据并将其解析为一个结构,然后发送到一个函数,该函数以特定格式将数据打印到标准输出。机场指针为空,因此当您尝试设置它的元素时,您将取消引用空指针。若要修复,请按如下方式为其提供自动存储: airPdata airport; 并将其传递给printData,如下所示: printData(&airport) 或者将其分配给malloc: air

下面的代码编译得很好,但是当我运行它时,它会进入while循环,然后
SegFaults
。输入文件是一个CSV文件。这个程序应该从CSV文件中获取数据并将其解析为一个结构,然后发送到一个函数,该函数以特定格式将数据打印到标准输出。

机场指针为空,因此当您尝试设置它的元素时,您将取消引用空指针。若要修复,请按如下方式为其提供自动存储:

airPdata airport;
并将其传递给
printData
,如下所示:

printData(&airport)
或者将其分配给malloc:

airPdata *airport = malloc(sizeof(*airport));
但是,当你完成后,一定要释放它


另外,正如您所看到的,仅仅因为您的C程序编译了,并不意味着它是正确的。C是非常不可原谅的,特别是关于内存,所以你一定要密切关注你如何处理内存,并可能考虑单元测试你的程序。

第一件事:添加<代码>(ARC<2)/*错误*/<代码>程序无错误编译。但在执行过程中发生的错误——你应该意识到这是正常的行为我需要在今晚11:59之前交上来,但我不知道如何修复它。”“你知道,我应该有足够的时间进行测试和调试。这样的活动通常比编写代码并编译要花费更长的时间。airPdata只是指针,然后是null,然后这个结构的值也是指针。它应该是airPdata*airport=malloc(sizeof(airPdata));在每个循环周期中也有无焦耳缓冲区。