Junior — Middle
92
Какие типы утечек памяти могут возникать в управлении динамической памятью?
Companies where asked
Почтатех
Answer from AI
sobes.tech AI
В управлении динамической памятью могут возникать следующие типы утечек памяти:
- Утечка из-за забытых ссылок: объекты остаются в памяти, потому что на них всё ещё есть ссылки, хотя они больше не нужны.
- Циклические ссылки: объекты ссылаются друг на друга, и сборщик мусора не может их освободить, если не поддерживает обнаружение циклов.
- Неосвобождённые unmanaged ресурсы: если в C# используются unmanaged ресурсы (например, дескрипторы, файлы), и они не освобождаются явно через
Disposeили финализаторы.
Пример утечки из-за цикла:
class Node {
public Node Next;
}
Node a = new Node();
Node b = new Node();
a.Next = b;
b.Next = a; // цикл
// Если сборщик мусора не поддерживает обнаружение циклов, объекты не будут освобождены
Для предотвращения утечек важно правильно управлять ссылками и освобождать unmanaged ресурсы.