Код, приведенный выше, в порядке, хотя в целом это страшная вещь, на которую вы надеетесь, что никогда не столкнетесь с кодовой базой, на которой вы должны работать.
std::vector
или boost::multi_array
будет лучшим выбором здесь, и они уничтожат без всякого ненужного кода, подверженного ошибкам. В принципе, если вам нужно задаться вопросом, что делает код и правильно ли он, то с ним уже что-то не так.
Загрузка процессора напрямую не связана с распределением памяти, и это всего лишь проблема, с которой вы столкнулись с вашим кодом. Некоторая петля, которая бесконечно опроса ОС для чего-то, может быть причиной этого; У меня нет информации о том, что делает ваш код, помимо выделения и освобождения памяти, поэтому трудно сказать, что можно улучшить.
После вашего комментария ... не полагаться на менеджер задач, чтобы сказать вам реального использования памяти программы. Для этого используйте специальный детектор утечки. Как указано в @ H2CO3, ОС не может сразу сообщить deleted
память как бесплатную.
Да, это то, как вы динамически выделяете и свободная память. «CPU не упадет» - и что тогда?В стандарте C++ не говорится, что при использовании 'delete' [] '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' '' '' \ '']. –
динамическое распределение памяти для памяти не для процессора ... – Netwave
Используйте std :: vector. В самом деле. Это для тебя. –