Question

I will below describe the error that I get when calling the function sscanf.

Some of my code:

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

It is part of a module of OmNet++, so I compile it using OmNet++ . I get the following error message in GDB:

"Program received signal SIGSEGV, Segmentation fault. __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"

The problem started to incur when I called sscanf.

I am running the program in Ubuntu on a 64-bits system. How do I resolve the above problem?

Thanks!

Was it helpful?

Solution

With OMNeT++, you can use a debugger like gdb when running your program from the command line. The IDE also lets you debug your code.

My guess is that currentStringVector[2].c_str() is not valid. Maybe the vector is smaller than that.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top