Witam serdecznie,
Dopiero poznaję struktury. Aby nieco się wprawić postanowiłem napisać prosty program, który będzie dodawał użytkowników do bazy zbierając imię, nazwisko i numer id. Mój program wygląda tak:
#include <stdio.h>
#include <conio.h>
void add_user(int id, char name[], char surname[100], struct human_being *pointer);
struct human_being {
int id;
char name[50];
char surname[100];
} human[100];
int main() {
struct human_being *pointer;
// struct human_being human[100];
int i = 0;
char name[50];
char surname[100];
pointer = &human[0];
puts("In order to start type sth in:");
while (getchar() != EOF) {
puts("Enter your name:");
gets(name);
puts("Enter your surname:");
gets(surname);
add_user(i, name, surname, pointer+i);
i++;
}
getch();
return 0;
}
void add_user(int id, char name[], char surname[100], struct human_being *pointer) {
(*pointer).id = id;
(*pointer).name = name;
(*pointer).surname = surname;
return;
}
Próbowałem podejścia wskaźnikowego i "normalnego", za każdym razem jednak tutaj:
(*pointer).name = name;
(*pointer).surname = surname;
Pojawia się błąd:
error C2106: '=' : left operand must be l-value
Z czego to wynika?