Что такое висячий указатель (dangling pointer) в C?

Этот вопрос проверяет понимание висячих указателей и их последствий.

Короткий ответ

Висячий указатель — это указатель, который указывает на освобождённую или несуществующую память. Использование такого указателя может привести к неопределённому поведению.

Длинный ответ

Создание висячего указателя:

int *ptr = (int*) malloc(sizeof(int));
free(ptr);  // Освобождение памяти
printf("%d", *ptr);  // Ошибка! ptr указывает на освобождённую память

 

Как избежать висячих указателей?

- Обнулять указатели после free():

ptr = NULL;

- Использовать smart pointers в C++ вместо malloc.
 

Вывод: Висячие указатели приводят к ошибкам памяти и утечкам данных.

Уровень

  • Рейтинг:

    1

  • Сложность:

    7

Навыки

  • C

Ключевые слова

Подпишись на C/C++ Developer в телеграм