Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Изменить символ в C-string (C)

40K
27 июля 2008 года
mrc
5 / / 26.07.2008
 
Код:
char* p="abcdefprintabcdefdefdefprint";
p[0]='r';

Это неправильно.
Как правильно?
Как изменить содержимое 1 элемента?
Как сделать чтобы указатель при таком объявлении был неконстантным?
3
27 июля 2008 года
Green
4.8K / / 20.01.2000
 
Код:
char p[] = "abcdefprintabcdefdefdefprint";
p[0]='r';

P.S. Указатель в твоём примере и так неконстантный.
40K
27 июля 2008 года
mrc
5 / / 26.07.2008
Почему тогда вылетает runtime error?
3
27 июля 2008 года
Green
4.8K / / 20.01.2000
Цитата: mrc
Почему тогда вылетает runtime error?


Именно потому и вылетает, что неконстантный указатель указывает на константную память.

38K
29 июля 2008 года
RusUnknown
5 / / 06.05.2008
Пытаешься записать в статическую память.
Надо создать свой массив, записать туда твою строчку, а потом уже редактировать.

Ну например так:
const char* p="abcdefprintabcdefdefdefprint";
char *my_str = new char[ strlen(p)+1 ];
strcpy(my_str, p);
my_str[0]='r';
...
delete []my_str;
13K
31 июля 2008 года
specter
113 / / 28.09.2007
Цитата: RusUnknown
Пытаешься записать в статическую память.
Надо создать свой массив, записать туда твою строчку, а потом уже редактировать.

Ну например так:
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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог