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;
}

 
     
     
     
    