biowep
12-06-2011, 00:42
Ciao
Ho bisogno di fare un confronto tra due caratteri contenuti uno in un array bidimensionale passato come argomento ad una funzione e l'altro in un array monodimensionale
vi faccio un esempio del codice
int funzione(char*);
main(){
char parola[a][b]={};
funzione(parola[2]);/*credo che, siccome ho passato un elemento dell'array e non tutto intero
l'array con cui lavoro dentro la funzione sia solo ciò che è contenuto in questo elemento
quindi dentro la funzione lavoro con un array MONODIMENSIONALE e non BIDIMENSIONALE come quello iniziale
su questo non sono molto sicuro, quindi se qualcuno riuscisse a spiegarmi questa cosa...
}
funzione(char *parola){
int i, v;
char vocale[5]={'a','e','i','o','u'};
for(i=0; i<strlen(parola); ++i){
for(v=0; v<5; ++v){
if(parola[i]==vocali[v]) /* È vocale */
else /* È consonante */
}
}
In fase di compilazione non compare nessun errore, né warning ma
inserendo qualsiasi parola il programma si crasha.
Il debug da questo errore:
"Il programma ha causato una violazione di accesso (errore di segmentazione)."
e seleziona di blu la riga if(parola[i]==vocali[v]) /* È vocale */
Sto usando Dev C++ 4.9.9.2
Ho bisogno di fare un confronto tra due caratteri contenuti uno in un array bidimensionale passato come argomento ad una funzione e l'altro in un array monodimensionale
vi faccio un esempio del codice
int funzione(char*);
main(){
char parola[a][b]={};
funzione(parola[2]);/*credo che, siccome ho passato un elemento dell'array e non tutto intero
l'array con cui lavoro dentro la funzione sia solo ciò che è contenuto in questo elemento
quindi dentro la funzione lavoro con un array MONODIMENSIONALE e non BIDIMENSIONALE come quello iniziale
su questo non sono molto sicuro, quindi se qualcuno riuscisse a spiegarmi questa cosa...
}
funzione(char *parola){
int i, v;
char vocale[5]={'a','e','i','o','u'};
for(i=0; i<strlen(parola); ++i){
for(v=0; v<5; ++v){
if(parola[i]==vocali[v]) /* È vocale */
else /* È consonante */
}
}
In fase di compilazione non compare nessun errore, né warning ma
inserendo qualsiasi parola il programma si crasha.
Il debug da questo errore:
"Il programma ha causato una violazione di accesso (errore di segmentazione)."
e seleziona di blu la riga if(parola[i]==vocali[v]) /* È vocale */
Sto usando Dev C++ 4.9.9.2