Собсна, насколько я понял, я не могу изменять строку, если я инициализировал на неё указатель, примером, char* a("dududu");
(вызывается исключение с ошибкой доступа при записи, к примеру, *p = 'a';
). Но я могу создать массив символов: char a[]("dududu")
, но я не понимаю как внести её в динамическую память через new. Редактор пишет:
Для агрегатного объекта требуется инициализация с использованием "{...}"
Что это значит (как поправить) или как иначе я могу изменять строку?
Код, приводящий к исключению:
char* a("dududu");
char* p(a);
*p = 'a';
Можно в стеке сделать копию строки так:
char str[] = "abcd" ;
str[1]= 'x' ;
или в куче так :
# include <string.h>
char const * s = "abcd" ;
int l = strlen(s) ;
char * str = new char [l+1];
memcpy(str,s,l+1);
str[1]= 'x' ;
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Вот есть блок try catch, в нём можно обрабатывать исключенияА как им корректно пользоваться? Если мы обрабатываем какие-то данные в try{обработка...
Не смог найти пример, когда удобнее использовать std::copy_backward вместо std::reverse_copyИ чем же существование второго не заставляет забывать о первом?...
Помнится в начале существования Windows компания Микрософт сильно продвигала так называемую венгерскую нотациюТакже многие программистские...