Неподходящая функция освобождения вызывает проблемы повреждения памяти
Функции alloc/dealloc, которым не соответствуют, на Windows происходят, когда вы используете функцию освобождения Windows®, которая правильно не соединяется к ее соответствующей функции выделения.
Освобождение памяти с функцией, которая не совпадает с функцией выделения, может вызвать повреждение памяти или неопределенное поведение. Если вы используете более старую версию Windows, неподходящая функция может также вызвать проблемы совместимости с более новыми версиями.
Правильно соедините свои функции выделения и освобождения согласно функциям, перечисленным в этой таблице.
Функция выделения | Функция освобождения |
---|---|
malloc() | free() |
realloc() | free() |
calloc() | free() |
_aligned_malloc() | _aligned_free() |
_aligned_offset_malloc() | _aligned_free() |
_aligned_realloc() | _aligned_free() |
_aligned_offset_realloc() | _aligned_free() |
_aligned_recalloc() | _aligned_free() |
_aligned_offset_recalloc() | _aligned_free() |
_malloca() | _freea() |
LocalAlloc() | LocalFree() |
LocalReAlloc() | LocalFree() |
GlobalAlloc() | GlobalFree() |
GlobalReAlloc() | GlobalFree() |
VirtualAlloc() | VirtualFree() |
VirtualAllocEx() | VirtualFreeEx() |
VirtualAllocExNuma() | VirtualFreeEx() |
HeapAlloc() | HeapFree() |
HeapReAlloc() | HeapFree() |
Группа: Динамическая память |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
WIN_MISMATCH_DEALLOC
|
Удар: низко |
ID CWE: 404, 762 |
Find defects (-checkers)
| Invalid deletion of pointer
| Invalid free of pointer