У меня возникла проблема в моем проекте Lazarus: каждый раз, когда я хочу использовать функцию, она выдает указанную выше ошибку ( External: SIGSEGV ). Я не знаю, что это значит, но некоторые отладки показали мне, что это код, вызывающий ошибку:
Исключение происходит после i := я + 1; , Я был бы очень благодарен, если бы вы могли мне помочь!
2 ответа
3 Решение kludg [2015-11-28 13:41:00]
Динамические массивы, такие как TStringArray = array of string; основаны на нуле; ваш код использует его как 1-based и повышает нарушение прав доступа.
Вы должны заменить i := 1; по i := 0;
К второй проблеме, это потому, что вы присоединяетесь к индексу i, который в начале — 1, поэтому у вас есть проблема, диапазон массива определяется "длиной — 1", поэтому, если ваша длина равна 1, то ваш диапазон равен 0. Поэтому для решения проблемы в вашем цикле for вы должны поставить Result[i-1] := s; например, вы получаете индекс, который вы действительно хотите.
Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском».
Закрыт 3 года назад .
Код формы, в которой ошибка. s := Unit4.s; Получаем непустую из цифр через пробел строку, тут ошибок нет.
При запуске ошибка External: SIGSEGV.
Захожу в среду Лазарус, запускаю проект через F9 и тут же выскакивает надпись “Project raised exception class: ‘External: SIGSEGV” – как быть в такой ситуации? С чем может быть связана проблема и смогу ли ее решить?
Автор публикации
Достижение получено 30.09.2018
Титул: Надежный Бородач
Достижение получено 22.07.2018
Похожее:
Ошибка “Sigsegv” в среде разработки Lazarus возникает во время отладки проекта.
Как исправить надоедливый “error”?
Нужно быть профессионалом, чтобы выдать решение, которое помогло бы одновременно всем, у кого выскочила надпись “Sigsegv” в Lazarus.
Я же могу лишь рассказать о частых причинах выпадения этой ошибки:
- опечатка в коде (внимательно перечитайте что вы напечатали);
- помехи со стороны антивируса или брандмауэра (такое тоже бывает);
- глюки дебагера (попробуйте установить отладчик другой версии).
Более конкретно ответить на вопрос можно лишь при наличии текста ошибки и вашего кода.
Возможно, это прочитают спецы. Если так, приглашаю их присоединиться к обсуждению вопроса!