PDA

Visualizza la versione completa : [c]--Errore con chiamata a funzione


ciamprix
12-05-2008, 15:32
Ciao a tutti durante il compiler mi va in errore la seguente istruzione:
aggiunta(Array, Buffer, &NumStringa);

l'errore che mi viene riportato è il seguente:
cannot convert `char**' to `char*' for argument `1' to `void aggiunta(char*, char*, int*)'

le variabili che uso sono rispettivamente dichiarate come :
int NumStringa
char *Array[NumStringa], Buffer[MAXLUNG+1];

mentre i prototipi di funzione:
void aggiunta(char *, char *, int *);

Da che cosa dipende l' errore?
Grazie a tutti!!!

XWolverineX
12-05-2008, 15:49
Gli stai passando una matrice, mentre la funzione richiede un vettore

ciamprix
12-05-2008, 15:59
Ciao Wolverine,
ma io gli sto passando un array di stringhe, una stringa ed un intero per riferimento!
come fa a leggere una matrice?
Grazie!!!

oregon
12-05-2008, 16:17
Gli stai passando un array di puntatori a char e non un array di char.

Dovresti scrivere

void aggiunta(char **, char *, int *);

ciamprix
12-05-2008, 16:46
Giustissimo mi è sfuggito questo piccolissimo concetto, grazie mille!!! :dhò:

ciamprix
12-05-2008, 16:47
Scusate per l' inconveniente del thread!!!

ciamprix
13-05-2008, 18:19
Sono ancora io...
ho un altro problemino...

faccio questa chiamata di funzione:
esito = colorePrestabilito(arrColori, p1.colore, &indice);

dove arrColori è dichiarato come char *arrColori[] = {"bianco", "rosso", "giallo", "celeste", "blu", "NERO"};

p1.colore è un elemento di una structure e indice è stato dichiarato come puntatore ad intero e lo passo per indirizzo poiche nella stessa dovrò modificarlo.

la definizione per questa funzione è: int colorePrestabilito(char **, char *, int *);

l' errore che mi viene restituito durante il compile è :62 D:\Documenti\Università\Tecniche di Programmazione\Esercizi\DISTANZE.cpp cannot convert `int**' to `int*' for argument `3' to `int colorePrestabilito(char**, char*, int*)'

potete aiutarmi...grazie mille!!!

ciamprix
13-05-2008, 18:34
ragazzi, mea culpa non sono così ignorante...ho dichiarato un puntatore di troppo...
l' intero indice viene passato alla function come puntatore in ma nel main non deve essere dihiarato puntatore...GRAZIE lo stesso a tutti!

Loading