Подтвердить что ты не робот

Что такое ошибка сегментации в Linux?

В Linux:

Что такое ошибка сегментации? Я знаю, что он сбрасывает программы, но это какая-то проблема с утечкой памяти или что-то совершенно не связанное? Кроме того, как вы справляетесь с этим? Это обычно проблема с настройкой компьютера или внутри самого приложения?

Кроме того, это происходит и в других ОС?

4b9b3361

Ответ 1

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

"сегментация" - это концепция каждого процесса на вашем компьютере, имеющего свое собственное виртуальное адресное пространство. Таким образом, когда процесс А считывает местоположение памяти 0x877, он считывает информацию, находящуюся в другом физическом местоположении в ОЗУ, чем тогда, когда Process B считывает свой собственный 0x877.

Все современные операционные системы поддерживают и используют сегментирование, и поэтому все могут вызвать ошибку сегментации.

Чтобы справиться с ошибкой сегментации, исправьте вызывающий код. Как правило, это указывает на плохое программирование, особенно ошибки пограничного условия, неправильную манипуляцию указателем или недопустимые предположения об общих библиотеках. Иногда segfaults, как и любая проблема, может быть вызвано неисправным оборудованием, но обычно это не так.

Ответ 2

A "segfault" - это когда программа обращается к защищенной или недопустимой памяти; обычно из-за плохого управления памятью или манипулирования указателями ошибок.

ОС обнаруживает недопустимый доступ к памяти и сбой приложения.