Сейчас на форуме: CDK123, zds, tyns777, tihiy_grom, morgot, rmn (+5 невидимых)

 eXeL@B —› Программирование —› Что станет с данными
Посл.ответ Сообщение

Ранг: 4.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 ноября 2008 07:25
· Личное сообщение · #1

Допустим я создал строку
char* a="annemarie";
А потом сделал так
a="supermari";
---------------
Вопросы:
1). Что станет в памяти с "annemarie". Эти данные останутся или удалятся.
2). Нужно ли ставит после а*: a*="supermari";



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 12 ноября 2008 10:52
· Личное сообщение · #2

Это Си? А так можно ?

Ты можешь сделать например так:
Code:
  1. *= 's' ;
  2. *(a+1) = 'u' ;
  3. ...


НО!
Code:
  1. char* a="annemarie"; /* это строковая КОНСТАНТА!!! */
  2. char a[]="annemarie"; /* а это массив-строка и его изменять можно */


а вот сразу a="supermari"; как в Бейсике нельзя!

1) удалятся
2) нужно, но не поможет - записывать можно только посимвольно, ну или тогда уж strcpy(a,"supermari") ;

Вообщем берёшь Кернигана и Ритчи и внимательно читаешь - от корки до корки



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 12 ноября 2008 11:49
· Личное сообщение · #3

progopis пишет:
удалятся

уверен? по мне так останутся на том же месте, а указатель перезапишется на новую строку

-----
MicroSoft? Is it some kind of a toilet paper?





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 12 ноября 2008 12:14
· Личное сообщение · #4

Если это массив чаров, не присвоит он сразу строку, для этого юзать надо функи. Поэтому вопрос как-то поставлен криво. Ничего не будет тупо потому, что не скомпилится. Когда будет реально компилируемый код-можно будет говорить. Это раз. Второе-программирование здесь ни разу не любое и уж точно не обучение азам С, скомпиляй и посмотри в отладчике. Топик закрыт, под тематику форума не попадает.


 eXeL@B —› Программирование —› Что станет с данными
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати