| Предыдущий | Следующий |
| ERROR_NOT_ENOUGH_MEMORY | ERROR_BAD_ENVIRONMENT |
ERROR_INVALID_BLOCK
Переданный блок памяти недействителен
ERROR_INVALID_BLOCK указывает, что блок, переданный операции управления памятью, не распознаётся как допустимое выделение. Типичные причины: освобождение неверного указателя, освобождение адреса внутри блока, повторное освобождение и смешение разных распределителей памяти.
Отладка
- Зафиксируйте стеки выделения и освобождения для этого указателя.
- Убедитесь, что выделение и освобождение выполняются одной средой выполнения и одной кучей.
- Проверьте владение объектом на границах DLL.
- Используйте диагностику кучи, чтобы найти первую недопустимую запись или операцию освобождения.
Решение
Исправьте контракт выделения памяти. Повторение той же операции освобождения или работы с кучей может усилить повреждение, поэтому его следует избегать.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.