0

我将在下面描述调用该函数时遇到的错误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. in ../sysdeps/x86_64/multiarch/../rawmemchr.S"

当我打电话时,问题开始出现sscanf

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

谢谢!

4

1 回答 1

1

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

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

于 2012-03-08T13:41:56.310 回答