| Предыдущий | Следующий |
| MEM_E_INVALID_LINK | CO_E_MISSING_DISPLAYNAME |
MEM_E_INVALID_SIZE
Что означает MEM_E_INVALID_SIZE
MEM_E_INVALID_SIZE (0x80080011) означает, что размер блока или диапазона памяти не укладывается в ограничения операции: значение может быть слишком большим, несовместимым со структурой либо полученным после переполнения арифметики размеров.
Что проверить
Сохраните исходные count, element size, alignment и итоговый byte size непосредственно перед вызовом. Отдельно проверьте умножение и сложение размеров на переполнение, преобразования между 32- и 64-битными типами, отрицательные значения после signed conversion и округление до требуемого alignment.
Для контроля вычислите размер теми же типами, что использует API, и сравните его с фактически выделенным буфером и документированным максимумом операции. Исправление подтверждается, когда расчёт не переполняется, диапазон целиком помещается в allocation и тот же вход больше не приводит к 0x80080011.
Справка: Windows heap functions · HeapAlloc.
Нужно найти другой код? Найти другой код состояния или ошибки.