Этот вопрос проверяет понимание висячих указателей и их последствий.
Висячий указатель — это указатель, который указывает на освобождённую или несуществующую память. Использование такого указателя может привести к неопределённому поведению.
Создание висячего указателя:
int *ptr = (int*) malloc(sizeof(int));
free(ptr); // Освобождение памяти
printf("%d", *ptr); // Ошибка! ptr указывает на освобождённую память
Как избежать висячих указателей?
- Обнулять указатели после free():
ptr = NULL;
- Использовать smart pointers в C++ вместо malloc.
Вывод: Висячие указатели приводят к ошибкам памяти и утечкам данных.