【发布时间】:2012-07-04 10:52:22
【问题描述】:
我正在努力:
printf("Provider: %s\n", Props->providerName);
结构成员(来自外部库)在哪里:
char providerName[256];
导致核心转储,gdb 输出为:
Program terminated with signal 11, Segmentation fault.
[New process 73950 ]
#0 0xfee22290 in strlen () from /lib/libc.so.1
我猜 char[] 可能不会以 null 结尾,但最好的解决方案是什么?
干杯!
编辑:我使用的结构来自外部库,并且似乎不为空(我可以成功打印它的另一个成员 char alias[256];
【问题讨论】:
-
如何用数据填充
providerName? -
你做了什么让它非空终止?
-
最好的解决方案是首先将
providerName终止为空。 -
您确定
Props是非空且有效的吗? -
所以解决一个段错误导致另一个。这是 gdb 和 valgrind 的经典案例。相信我,这样你会更快地解决你的问题,或者至少能够与 SO 分享 real 问题。在 intertubez 上调试非常困难。