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