Заполнение структуры через функцию - C (СИ)
Формулировка задачи:
Листинг программы
- #include <stdio.h>
- #include <string.h>
- char ch;
- int i,j;
- struct loc {
- char *name;
- char gr;
- };
- void reading (loc);
- int main() {
- loc l;
- void reading(loc &l);
- }
- void reading (loc &l){
- l.name="Hello"; // выдает deprecated conversion from string constant to 'char*'. а если сделать просто char - проект не запускается invalid conversion from 'const char*' to 'char'
- printf("%s",l.name);
- }
Решение задачи: «Заполнение структуры через функцию»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- struct loc {
- char name[100];
- char gr;
- };
- void reading(loc* l) {
- memset(l->name, 0, sizeof(l->name))
- strncpy(l->name, "Hello", sizeof(l->name)-1);
- }
- int main() {
- loc l;
- reading(&l);
- printf("%s\n", l.name);
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с памятью и строками.
- Объявление структуры
loc
с полямиname
иgr
. - Функция
reading
принимает указатель на структуруloc
и заполняет поля этой структуры. - В функции
reading
используется функцияmemset
для обнуления поляname
. - В функции
reading
используется функцияstrncpy
для копирования строкиHello
в полеname
. - В функции
main
создается экземпляр структурыloc
с именемl
. - Функция
reading
вызывается для заполнения структурыl
. - Выводится значение поля
name
структурыl
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д