SIGSEGV;丢失文件;使用sscanf运行程序时

时间:2012-03-08 13:34:47

标签: c++ omnet++

我将在下面描述调用函数sscanf时出现的错误。

我的一些代码:

#include <cstdio>
(..)
int device_num = 0;
int frameTime = sscanf(currentStringVector[2].c_str(), "%d", &device_num);

它是OmNet ++模块的一部分,所以我使用OmNet ++编译它。 我在GDB中收到以下错误消息:

  

“程序接收信号SIGSEGV,分段故障。   __rawmemchr_sse2()at ../sysdeps/x86_64/multiarch/../rawmemchr.S:31   31 ../sysdeps/x86_64/multiarch/../rawmemchr.S:Filen eller katalogen finns inte。       在../sysdeps/x86_64/ultiarch /../ rawmemchr.S“

当我拨打sscanf时,问题就开始了。

我在64位系统上运行Ubuntu中的程序。 我该如何解决上述问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用OMNeT ++,您可以在命令行运行程序时使用像gdb这样的调试器。 IDE还允许您调试代码。

我的猜测是currentStringVector[2].c_str()无效。也许矢量小于那个。