2013-02-22 3 views
0

В настоящее время я запускаю файл C++, который компилируется, но сбой при его запуске.Ошибка SIGSEV (gdb)

открыть отладчик и получить следующую строку при запуске программы:

Программа получила сигнал SIGSEGV, неисправность Сегментация. 0xff0ab210 в strcat() из /lib/libc.so.1

Я понятия не имею, что это означает, что линия.

Не могли бы вы объяснить?

Edit:

Я получил ответы говорят мне о том, как я использовал strcat в программе. Все, что я использовал для использования, используется для сравнения с методом atoi, чтобы преобразовать строку в шестнадцатеричный номер.

Редактировать 2: Я видел что-то в коде, который использует библиотеку strcat, это функция .append. Будет ли это причиной проблемы?

ответ

0

Это ошибка сегментации. Обычно это означает, что вы пытаетесь получить доступ к памяти, которая не была выделена. Поскольку вы используете strcat, я предполагаю, что строка назначения не была выделена или недостаточно памяти.

+0

и как я могу выделить эту точку в памяти? –

+0

Можете ли вы опубликовать строку с вызовом функции strcat? – austin

+0

Я просто использовал его для метода atoi, который мне нужен для некоторых методов в программе. Я делаю им указатели? –

0

Если неисправность сегментный происходит от strcat, то это, вероятно, один из следующих случилось:

  1. Ваш источник не является нулем C строку (искаженной строки).
  2. Объем памяти, выделенной в целевой строке, недостаточен для хранения как источника, так и адресата + 1 (нуль в конце).

Проверьте, не закрыты ли оба корпуса, и, надеюсь, вы снова не увидите SIGSEGV.

+0

Что именно вы имеете в виду в обоих случаях? @Neil –

Смежные вопросы