Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2015, 23:36   #1
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию Си. Массив char

Здравствуйте!
Мозги закипели и застрял на пустяковом моменте. Не могу понять где я не прав. Есть поле структуры - массив char. Например char name[32].
Хочу статически проинициализировать это поле

Код:
strct.name="127.0.0.1";
На что gcc ругается про несовместимость типов
Если я указываю имя массива без индекса, значит получаю указатель на первый элемент. И туда пытаюсь записать строку. Что не так?
Bayern_M вне форума Ответить с цитированием
Старый 17.11.2015, 09:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему строки в Си так не присваиваются. По крайней мере char[].
Вот если бы string использовал, тогда другое дело.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.11.2015, 10:39   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не, в С нельзя присваивать что-нибудь типа str = "hello" + str2, или нельзя копировать str1 = str2 (потому что это просто указатели)

Но можно так (только со строковыми литералами)
Код:
char* str = "hello";
потому что компилятор создаст эту строку и отдаст указатель.

Почему не получается так с массивами не помню. Наверно просто так задумано в языке, если нужен указатель, то его и надо использовать вместо массива. Иначе это смысла не имеет, куда тогда ваш массив (который был до присваивания) девать? Тут же копирование надо, а не просто присвоить указатель.

Тут надо использовать strcpy или strncpy.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 17.11.2015 в 10:49.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
String и массив char OmegaBerkut Visual C++ 7 22.11.2013 02:12
массив char PinkPink Помощь студентам 0 19.02.2012 16:32
Указатель на массив указателей на массив char'ов... SrgGld Общие вопросы C/C++ 0 19.11.2010 23:35
c++ массив char 0479 Общие вопросы .NET 2 19.09.2010 23:20
Массив типа char * das Ma:dchen Общие вопросы C/C++ 9 13.06.2010 17:21