执行以下行时,我遇到了分段错误:
result = strtok(data,delimiter);
我已经给了回溯:
Program received signal SIGSEGV, Segmentation fault.
0x44359e85 in strtok () from /lib/libc.so.6
(gdb) backtrace
#0 0x44359e85 in strtok () from /lib/libc.so.6
#1 0x08048c02 in main () at multiply.c:36
如何解决这个问题?
答案 0 :(得分:2)
您遇到的分段错误几乎没有合理的可能性:
NULL
的第一次通话中将strtok()
作为数据传递。NULL
作为分隔符传递。strtok()
修改了源字符串。我知道你知道如何使用gdb,所以在调用strtok()
之前设置一个断点,看看传递给函数的值是什么。
您也可以使用 valgrind 。它将帮助您找到您遇到的具体问题。
但是,如果你想在堆栈溢出中得到更好的答案,你必须提供更多代码和其他iformation。