I add values to my structure in while loop.
struct person
{
char * name;
char * surname;
int age;
char * email;
};
struct person * tablicaOsob[100];
//for loop
tablicaOsob[i] = createPerson(name, surename, age, email);
Data has been added correctly. I check this via debugger
Now I would like iterate over tablicaOsob
I create function
void list_persons(struct person *p, int k)
{
printf("Lista osob\n");
int i;
for(i=0; i<k; i++)
{
printf("%s\n", p[i].name );
}
}
But when I fire this function: list_persons(&tablicaOsob,i);
I gets some bad data. Where is the problem. And my compilator says:
main.c:74:17: warning: passing argument 1 of 'list_persons' from incompatible pointer type [enabled by default]
list_persons(&tablicaOsob,i);
^
main.c:17:6: note: expected 'struct person *' but argument is of type 'struct person * (*)[100]'
void list_persons(struct person *p, int k)
EDIT:
createPerson()
struct person * createPerson(char * name, char * surename, int age, char * email)
{
struct person * p = (struct person *) malloc(sizeof(struct person *));
p->name = name;
p->surname = surename;
p->email = email;
p->age = age;
return p;
}