Операторы «новый» и «удалить» в C++.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Операторы «новый» и «удалить» в C++.

Сообщение Anonymous »

Я столкнулся с проблемой в упражнении из книги Бьярна Страуструпа Программирование: принципы и практика использования C++ (2-е издание), в самом конце главы 17 раздела «Упражнения», упражнение 7:
Программа работает нормально, если не использовать delete Linearray1;.
Соответственно проблема возникает при удалении выделенной динамической памяти.
У меня нет сообщений об ошибках или предупреждений в консоли.
Однако VS Code показывает мне эту проблему в этой строке (delete linearray1).
Выделяет всю строку желтым цветом.
Подскажите, как решить проблему в данном случае. Как правильно очистить выделенную память?
#include

void fillarray(std::string& array)
{
char* linearray1 {new char};
char* line = linearray1;
std::cin >> line;

while (*line)
{
if (*line == '!')
break;
array += *line;
line++;
}
delete linearray1;
}

int main()
{

std::string linearray1;
fillarray(linearray1);
std::cout

Подробнее здесь: https://stackoverflow.com/questions/792 ... elete-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»