Ciao , intanto lista è un array di puntatori , dovresti dargli una dimensione diversa da 0 che non ha senso , es . char *lista[4]
dovrai allocare spazio in memoria per ogni elemento con malloc()
ovviamente inizializzare ogni elemento con una stringa .
per passare l'array di puntatori è come passare una matrice .
codice:contiene(lista,p, a[c].num[t].id); //senza * int contiene(char** str, int l, char *s)// due **