Нужно ли вызывать delete [] против delete для массивов символов?
Я использую библиотеку, написанную коллегой, и обнаружил, чтоvalgrind
извергает ошибки, связанные сdelete
.
Проблема заключалась в том, что были распределения массивов символов, таких как
char* s = new char[n];
позже сdelete s
вместоdelete[] s
Он говорит мне, что разница действительно в том, чтоdelete[] s
вызовет деструктор для объекта в каждой позицииs
(если он есть), в данном случае это не так, потому что это примитивный тип. Я верю, что это правда.
Так что удаление s на самом деле не является ошибкой иvalgrind
просто быть очень тщательным
Будет ли он все еще определенно освобождать всю память, связанную сs
?