Я работал над некоторым унаследованным кодом С++, который использует структуры переменной длины (TAPI), где размер структуры будет зависеть от строк переменной длины. Структуры выделяются массивом литья new
, таким образом:
STRUCT* pStruct = (STRUCT*)new BYTE [sizeof(STRUCT) + nPaddingSize];
Позже, однако, память освобождается с помощью вызова delete
:
delete pStruct;
Будет ли это сочетание массива new []
и non-array delete
вызвать утечку памяти или будет зависеть от компилятора? Было бы лучше изменить этот код, чтобы вместо этого использовать malloc
и free
?