Hola pablo, no soy muy bueno el la programacion y tengo tiempo sin programar pero investigando un poco en la red encontre esto:
Cita: Hola
Un 'vector' (entendido como array) SIEMPRE se pasa por referencia, es decir, se pasa la dirección de memoria del primer elemento del array. Si se pasase por valor (q no se pasa) se debería copiar en una variable local (del stack) todo el contenido de la estructura, lo q lo hace poco viable.
En tu caso, como tampoco estoy seguro de qué quieres hacer, te doy las dos opciones. Si lo único q quieres pasar es el array de estructuras:
Código:
int main(){
struct dades contactes[1000];
menu(contactes);
}
void menu(struct dades con[]);
Si lo q quieres es realmente pasar la dirección de memoria, donde está el puntero de los datos, como parece q quieres hacer, entonces deberás realizar un cast:
Código:
int main(){
menu((struct dades **) &contactes);
}
void menu(struct dades* con[]){...}
Saludos.
Fuente: http://www.elrincondelc.com/nuevorincon/foros/viewtopic.php?p=42190&sid=4ff47faaf14ece2295ce3c9f c017ce24
espero te sirva.