array de punteros como parámetro: ¿error?

Manolo
01 de Junio del 2005
Hola. Gracias por entrar.
Vereiss tengo un problema, estoy aprendiendo C y algunos conceptos se ve que no los tengo muy claros todavía. El caso es que el siguiente código da error en la llamada a la función: tipo de puntero incompatible.
Gracias.

/* la definición del registro */
typedef struct Nodo{
char *cadena;
struct Nodo *sig;
} tiponodo;
/* el prototipo de la función */
void inicializa(tiponodo **diccionario[]);

int main(void){
tiponodo *diccionario[NUMLETRAS];
inicializa(&diccionario);
return 0;
}

miguel angel
01 de Junio del 2005
Hola, Manolo.

El prototipo:

void inicializa(tiponodo **diccionario[]);

No es muy correcto. Debes escribir:

void inicializa(tiponodo *diccionario);

Esto es suficiente.

Además, si quieres, en la llamada a la función puedes quitar el ampersand (&):

inicializa(diccionario);

En principio con esto ya debería funcionar.
Los punteros no son tan complicados como parecen. En el "Manual Imprescindible de C/C++" de Anaya Multimedia quedan explicados muy claro.

Un saludo, Miguel Angel.
[email protected]
www.maacera.com

Ánimo!