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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно написать dll которая будет детектить процессы по имени окна и классамИ закрывать приложение в которое она подключена после детекта...
Мне нужна программа на с++ Дано радиус круга и сторона квадратаСравнить периметр указанных фигур Желательно скрин кода программы
Здравствуйте, задаю фиксированный размер консоли с помощью