как сохранить строку в структурную переменную и распечатать ее на C? [closed]

Итак, нам поставили задачу создать функцию directory** getdirectory(int n)который читает n строк, каждая строка содержит имя, возраст и рождение, которые должны быть сохранены в массиве переменных типа directory, и возвращает указатель на массив указателей каталогов (да, я знаю, что это сбивает с толку). Моя проблема, я считаю, заключается в strcat(arr_records[i]->name, a), который получает имя и сохраняет его в структурной переменной, потому что, если я не пытаюсь получить имя, мой код отлично отображает возраст и рождение. Так что вы, ребята, думаете, что мне следует делать?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct my_directory directory;

struct my_directory{
    char name[100];
    int age, birth;
};

directory **getdirectory(int);
void free_records(directory **, int);

int main(){
    directory **record;
    int n_records;
    scanf("%dn", &n_records);
    record = getdirectory(n_records);
    for(int i=0; i<num_monarchs; i++){
        printf("%s, born %d, %d years old.n", record[i]->name), record[i]->birth, record[i]->age);
    }
    free_records(record, n_records);
    return 0;
}   

directory **getdirectory(int n_records){
    int b,c;
        char a[100];
        directory **arr_records;
        arr_records = (directory*)malloc(n_records*sizeof(directory));
        for(int i=0; i<n_records; i++){
            printf("Enter Name, Birth, Age: "); 
            scanf("%s %d %d", &a, &b, &c);

            strcat(arr_records[i]->name, a);
            arr_records[i]->birth = birth;
            arr_records[i]->age = number;
            
    }
    return arr_records;
}

void free_recordss(directory **record, int n_records){
    for(int i=0; i<n_records; i++){
        free(record[i]);
    }
    free(record);
}

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *