Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация символьной строки 
:(
    Опции темы
N1ko
Дата 11.6.2009, 03:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет




Почему програма отказывается компилиться?    
Код

char ch1[5];
ch1 ="hewk";

Пробовал разные вариации... Вопрос конечно глупый, но проблема такая возникла.
PM MAIL ICQ   Вверх
andrew_121
Дата 11.6.2009, 05:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



N1ko, Потому что ты, не знаешь что хочешь!
"С" строки, инициализируются следующими способами.
Код

char str[] = "any string";
char* str = "any string";



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 11.6.2009, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(N1ko @  11.6.2009,  03:35 Найти цитируемый пост)
Почему програма отказывается компилиться?    

strcpy используйте


--------------------
PM MAIL   Вверх
Andrey44
Дата 11.6.2009, 07:48 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Код

char ch1[5];

ch1[0] = 'h';
ch1[1] = 'e';
ch1[2] = 'w';
ch1[3] = 'k';

 smile так точно скомпилится!!!


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
zim22
Дата 11.6.2009, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Andrey44 @  11.6.2009,  07:48 Найти цитируемый пост)
 так точно скомпилится!!!

 smile это не есть гуд. ТС хотел символьную строку, а не массив символов.
необходимо добавить
Код

ch1[4] = '\0';



--------------------
PM MAIL   Вверх
Andrey44
Дата 11.6.2009, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Цитата(zim22 @  11.6.2009,  07:58 Найти цитируемый пост)
 smile это не есть гуд. ТС хотел символьную строку, а не массив символов.
необходимо добавить

По-моему о строке никто не говорил. Вопрос был - <Почему програма отказывается компилиться?>

Это сообщение отредактировал(а) Andrey44 - 11.6.2009, 08:54


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 11.6.2009, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(andrew_121 @  11.6.2009,  05:09 Найти цитируемый пост)
N1ko, Потому что ты, не знаешь что хочешь!
"С" строки, инициализируются следующими способами.


N1ko
и не только строки smile 
два разных понятия - инициализация и присваивание
Код

int a =10; //инициализация
int b;
b = 20; //присваивание


Цитата(N1ko @  11.6.2009,  03:35 Найти цитируемый пост)
char ch1[5];
ch1 ="hewk";

в данном случае создается неинициализированный массив символов. Имя массива представляет из себя rvalue (или можно сказать просто константный) указатель на первый элемент массива. Менять значение константных обьектов (в том числе и константных указателей) - нельзя.
Как следствие всего вышесказанного - ошибка компиляции.

Это сообщение отредактировал(а) azesmcar - 11.6.2009, 09:01
PM   Вверх
zim22
Дата 11.6.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Andrey44 @  11.6.2009,  08:54 Найти цитируемый пост)
По-моему о строке никто не говорил

как не говорил? а тема как называется?
Цитата

Инициализация символьной строки

***
даже если предположить, что о строке никто не говорил.
что вы тогда намеревались сделать? убрать ошибки компиляции и взамен добавить логические? smile
ведь вы создали монстра  некорректную С-строку, которая вылезет за свои границы.
***
не принимайте близко к сердцу мои мысли вслух.


Это сообщение отредактировал(а) zim22 - 11.6.2009, 09:43


--------------------
PM MAIL   Вверх
Andrey44
Дата 11.6.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Цитата(zim22 @  11.6.2009,  09:37 Найти цитируемый пост)
как не говорил? а тема как называется?

Все, вопрос снят, извиняюсь за невнимательность. smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
malor
  Дата 17.10.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



У меня программа падает на строке присвоения :
Код
int BestFunction(char* sName)
{
 
  *sName = '\0';
  ..................
  ..................
}
Почему ? smile 

MSVS8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.