PDA

Visualizza versione completa : C warning



XFox
07-01-2005, 06.13.47
Ciao a tut
Compilando un sorgente C con il GCC 3.3 ottengo il seguente messaggio di warning:


warning: passing arg 2 of `stampaLista' from incompatible pointer type

Nel mio codice ho una matrice di puntatori a caratteri dichiarata e definita con:


const char *oggetti[][2] = {
"Oggetto1", "Oggetto2"
}

Ho una funzione che deve accettare come secondo argomento questo array bidimensionale.
Il suo prototipo è:


void stampa(int, char *c[][2]);

In corrispondenza di ogni chiamata alla funzione stampa() del tipo


stampa(<numero>, oggetti);

ottengo il warning di cui sopra.
A dispetto di ciò, però, in esecuzione non riscontro nessun problema e l'eseguibile si comporta come avevo progettato.
Non riesco a capire il senso di quel warning, qualcuno può chiarirmi dove sta il problema?
TIA.

Yoghi
07-01-2005, 16.25.53
Ti avverte che non puo verificare l'uguaglianza dei tipi a livello di compilazione im quanto puntatori a qualcosa di indefinito e quindi te lo segnala che lui lo compila a tuo rischio e pericolo!

XFox
07-01-2005, 21.01.59
No, era una cosa molto più semplice e banale... :rolleyes:

Ciò che non gli piaceva era che nella dichiarazione della matrice avevo usato la parola chiave const, mentre nel prototipo no.
Sistemato il tutto togliendo const alla dichiarazione o aggiungendolo al prototipo compila senza warning.
Era proprio una cavolata, scusate... :azz: