char *str3 = new char[SIZE];
str3 = "Amygdala";
delete[] str3; // Здесь ошибка
Пожалуйста, объясните что не так.
Что происходит?
char *str3 = new char[SIZE];
Вы выделяете память и присваиваете указатель на этот блок переменной str3
str3 = "Amygdala";
Вы присваиваете переменной str3
указатель на константную строку
delete[] str3;
Вы пытаетесь удалить указатель на константную строку.
Что нужно делать? Нужно после выделения памяти скопировать туда необходимое содержимое. Сделать это можно функцией
strcpy(str3, "Amygdala")
или подобными.
И, кстати, сравнивать строки нужно тоже по содержимому.
strcpy(str3, "Amygdala");
bool test1 = str3 == "Amygdala";
bool test2 = strcmp(str3, "Amygdala") == 0;
test1
будет равно false, а test2
true
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно написать dll которая будет детектить процессы по имени окна и классамИ закрывать приложение в которое она подключена после детекта...
Мне нужна программа на с++ Дано радиус круга и сторона квадратаСравнить периметр указанных фигур Желательно скрин кода программы
Здравствуйте, задаю фиксированный размер консоли с помощью