以下代码编译得很好,但是当我运行它时,它会进入while循环然后SegFaults
。输入文件是CSV文件。该程序应该从CSV文件中获取数据并将其解析为结构,然后将结构发送到以特定格式将其打印到stdout的函数。
答案 0 :(得分:1)
您的机场指针为空,因此当您尝试设置它的元素时,您取消引用空指针。要修复,要像这样自动存储:
airPdata airport;
并将其传递给printData
,如下所示:
printData(&airport)
或者用malloc分配它:
airPdata *airport = malloc(sizeof(*airport));
但是当你完成它时,请确保free
。
另外,正如您所看到的那样,仅仅因为您的C程序编译并不意味着它是正确的。 C真是无情,特别是在内存方面,所以你一定要密切关注你如何处理内存,也许可以考虑对你的程序进行单元测试。