我將在下面描述我在調用函數sscanf
時遇到的錯誤。SIGSEGV;丟失文件;當使用sscanf運行程序
我的一些代碼:
#include <cstdio>
(..)
int device_num = 0;
int frameTime = sscanf(currentStringVector[2].c_str(), "%d", &device_num);
它的OMNeT ++的模塊的一部分,所以我把它用OMNET ++編譯。 我在GDB收到以下錯誤信息:
「節目在../sysdeps/x86_64/multiarch/../rawmemchr.S:31 31接收信號SIGSEGV,分割過錯 __rawmemchr_sse2()。 ./sysdeps/x86_64/multiarch/../rawmemchr.S:Filen埃勒katalogen芬蘭人INTE 在../sysdeps/x86_64/multiarch/../rawmemchr.S」
的問題開始承擔當我打電話給sscanf
。
我在64位系統上運行Ubuntu中的程序。 如何解決上述問題?
謝謝!
你可以在調用sscanf之前打印'currentStringVector [2] .c_str()'嗎? – ciphor 2012-03-08 13:38:31
你可以發佈聲明和填充'currentStringVector'的代碼嗎? – hmjd 2012-03-08 13:39:51
包含一段代碼的自我(在ideone.com上運行並顯示相同行爲)對於此問題進行調試將非常有用。 – PlasmaHH 2012-03-08 13:46:29