我将在下面描述调用函数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中的程序。 我该如何解决上述问题?
谢谢!
答案 0 :(得分:1)
使用OMNeT ++,您可以在命令行运行程序时使用像gdb这样的调试器。 IDE还允许您调试代码。
我的猜测是currentStringVector[2].c_str()
无效。也许矢量小于那个。