char* p="abcdefprintabcdefdefdefprint";
p[0]='r';
Изменить символ в C-string (C)
Код:
Это неправильно.
Как правильно?
Как изменить содержимое 1 элемента?
Как сделать чтобы указатель при таком объявлении был неконстантным?
Код:
char p[] = "abcdefprintabcdefdefdefprint";
p[0]='r';
p[0]='r';
P.S. Указатель в твоём примере и так неконстантный.
Почему тогда вылетает runtime error?
Цитата: mrc
Почему тогда вылетает runtime error?
Именно потому и вылетает, что неконстантный указатель указывает на константную память.
Надо создать свой массив, записать туда твою строчку, а потом уже редактировать.
Ну например так:
const char* p="abcdefprintabcdefdefdefprint";
char *my_str = new char[ strlen(p)+1 ];
strcpy(my_str, p);
my_str[0]='r';
...
delete []my_str;
Цитата: RusUnknown
Пытаешься записать в статическую память.
Надо создать свой массив, записать туда твою строчку, а потом уже редактировать.
Ну например так:
const char* p="abcdefprintabcdefdefdefprint";
char *my_str = new char[ strlen(p)+1 ];
strcpy(my_str, p);
my_str[0]='r';
...
delete []my_str;
Надо создать свой массив, записать туда твою строчку, а потом уже редактировать.
Ну например так:
const char* p="abcdefprintabcdefdefdefprint";
char *my_str = new char[ strlen(p)+1 ];
strcpy(my_str, p);
my_str[0]='r';
...
delete []my_str;
в С нету оператора new ;)
Автор - юзай malloc и free