SIGSEGV; отсутствующий файл; при запуске программы с использованием sscanf - PullRequest
0 голосов
/ 08 марта 2012

Ниже я опишу ошибку, которую получаю при вызове функции 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.

Я запускаю программу в Ubuntu в 64-битной системе.Как решить вышеуказанную проблему?

Спасибо!

1 Ответ

1 голос
/ 08 марта 2012

С OMNeT ++ вы можете использовать отладчик, такой как gdb, при запуске вашей программы из командной строки. IDE также позволяет отлаживать код.

Я предполагаю, что currentStringVector[2].c_str() недействительно. Может быть, вектор меньше этого.

...