Как хранить несколько значений с помощью массивов, функций и структур в языке Си?
У меня нет проблем с инициализацией данных в массиве struct.
Однако если я хочу сохранить, скажем, "First "в первой записи структуры и" Next " во второй записи структуры, программа отображает кучу случайных данных.
Которые не то, что я хочу, чтобы это сделать.
В настоящее время программа отображает:
Имя 1 : Init
Имя 2 : Init
Имя 3 : Init etc .. ect..
Вместо этого я хочу, чтобы он хранил и отображал:
Имя 1: Боб
Имя 2: Алиса
Имя 3: Джон и т. д..
Что я уже пробовал:
#include <stdio.h> #define SIZE 2 struct date { int day; int month; int year; }; struct record { char first_name[11]; char surname[21]; struct date DOB; int height; char eye_color; int weight; }; void init_struct(struct record *ptr); void display_struct(struct record data[SIZE]); int main(void) { struct record data[SIZE], *ptr = &data; init_data(ptr); display_data(data); return 0; } void display_data(struct record data[SIZE]) { int i; for(i = 0; i < SIZE; i++) { printf("Details of struct %d:\n\n", i + 1); printf("First name %d: %s\n", i + 1, data[i].first_name); printf("Surname %d: %s\n", i + 1, data[i].surname); } } void init_data(struct record *ptr) { int i, j; for(i = 0; i < SIZE; i++) { printf("Enter details for struct %d\n\n", i + 1); printf("First name: "); scanf("%10s", (*(ptr + i)).first_name); printf("Surname: "); scanf("%20s", (*(ptr + i)).surname); } }