Не получается создать в структуре поле с именем (char[]) чтобы компилировалось без warning - C (СИ)
Формулировка задачи:
Всем привет.
Потребовала жизнь немного разобраться с С, (до этого были 1С и совсем немножко С#), и я засел ковырять некий курс. Дошел до тестовой задачи: дана структура на несколько полей, функция создания, удаления и печати значений этих полей. Все на указателях.
Задание: переписать без указателей.. и тут я встрял
Написал нечто такое (укоротил уже до предела):
Пытаюсь компилировать - стоит мат до потолка:
test.c:14:2: warning: missing braces around initializer [-Wmissing-braces]
test.c:14:2: warning: (near initialization for ‘example.name’) [-Wmissing-braces]
test.c:14:2: warning: initialization makes integer from pointer without a cast [enabled by default]
test.c:14:2: warning: (near initialization for ‘example.name[0]’) [enabled by default]
Может кто объяснить, что я делаю не так? Я что, тут сильно косячу?
Хочется избавиться от всех предупреждений..
Пытался читать http://stackoverflow.com - пока не помогает.
ps
компилятор
gcc version 4.7.2 (Debian 4.7.2-5)
Листинг программы
- #include <stdio.h>
- #include <string.h>
- struct test
- {
- char name[20];
- };
- struct test create (char somename[])
- {
- struct test example =
- {
- strcpy (example.name, somename)
- };
- return example;
- }
- int main (int argc, char *argv[])
- {
- struct test ololo = create("ololo");
- printf("Struct name: %s\n", ololo.name);
- return 0;
- }
Решение задачи: «Не получается создать в структуре поле с именем (char[]) чтобы компилировалось без warning»
textual
Листинг программы
- struct test example;
- strcpy (example.name, somename);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д