Массив char в структуре - C (СИ)
Формулировка задачи:
Привет, разбираюсь вот со структурами. Уперся в заполнение массивы char, вложенные в структуру.
А именно не знаю как правильно сей массив заполнить. В первом случае как массив указателей мне удалось заполнить его следующим образом:
Назревает вопрос- как заполнить массив указателей, используя скажем gets(new1.a) или fgets(new1.a,N, stdin). И вообще, как видит компилятор процесс заполнения массива указателей?
Вопрос 2) если у меня обычный массив, такое заполнение уже не катит. Выбивает ошибку.
Возможно я не различаю разницы между обычной символьной строкой и символьной строкой, вложенной в структуру? И аналогичный вопрос, как видит компилятор заполнение указанной строки?
#include <stdio.h>
#include <stdlib.h>
#define N 10
struct str
{
char *a[N];
};
int main()
{
struct str new1;
*new1.a="aloha";
printf("%s!\n", *new1.a);
return 0;
}#include <stdio.h>
#include <stdlib.h>
#define N 10
struct str
{
char a[N];
};
int main()
{
struct str new1;
new1.a="aloha";
printf("%s!\n", new1.a);
return 0;
}Решение задачи: «Массив char в структуре»
textual
Листинг программы
strcpy (new1.a, "aloha");
Объяснение кода листинга программы
- В данном коде происходит копирование строки
alohaв поле 'a' структуры 'new1'. - Функция 'strcpy' используется для копирования строки.
- Значение переменной 'new1.a' будет равно
aloha.