| Предыдущий | Следующий |
| MEM_E_INVALID_ROOT | MEM_E_INVALID_SIZE |
MEM_E_INVALID_LINK
Что означает MEM_E_INVALID_LINK
MEM_E_INVALID_LINK (0x80080010) означает нарушение внутренней связности структуры памяти: ссылка next/previous или иной link указывает не на допустимый элемент ожидаемой цепочки.
Что проверить
Остановитесь на первом месте, где цепочка перестаёт быть взаимно согласованной. Запишите адрес текущего блока, соседние link-поля, размер allocation и allocator, которому принадлежит каждый адрес. Проверьте use-after-free, двойное освобождение, запись за границу буфера и смешение объектов из разных heaps; простая проверка «указатель ненулевой» здесь недостаточна.
Для контроля воспроизведите операцию с heap diagnostics/PageHeap или эквивалентной проверкой allocator metadata и убедитесь, что переход по каждому link остаётся внутри живых блоков этой же структуры. Исправление должно устранять первую запись, портящую связь, а не только место, где повреждение позднее обнаруживается.
Справка: Windows heap functions · HeapValidate.
Нужно найти другой код? Найти другой код состояния или ошибки.
