PDA

Visualizza la versione completa : C error: ‘i’ undeclared here (not in a function)


roldo
03-03-2012, 09:39
Mi da questo errore anche se "i" lo dichiaro sia in main che nella funzione !
Cos'่ che non capisco ?
Molte grazie.



../prvcmp.c:33: error: ‘i’ undeclared here (not in a function)







int Mstrcmp( char v[i] , char v[i]);



int main()
{


int i ;

.....
......

if (Mstrcmp (v[i] , v[left]) < 0 )

.................
.................

}



int Mstrcmp(char s[i] , char t[i])

{
int i ;

for ( i= 0; s[i] == t[i] ; i++ )

if (s[i] == '\0' )
return 0 ;

return s[i] - t[i];



}

linoma
03-03-2012, 10:02
Tra i paramentri della funzione.

roldo
03-03-2012, 10:05
Originariamente inviato da linoma
Tra i paramentri della funzione.

e cio่ ?

linoma
03-03-2012, 10:08
tra le parenti quadre della definizione della funzione int Mstrcmp( char v[i] , char v[i]);

roldo
03-03-2012, 10:18
Originariamente inviato da linoma
tra le parenti quadre della definizione della funzione int Mstrcmp( char v[i] , char v[i]);

Ma ho scritto proprio cosi ! Non ci vedo molto bene ma copio incollo >>>

int Mstrcmp( char v[i] , char v[i]);


dov'่ la differenza ?

linoma
03-03-2012, 10:19
Nessuna ่ che potrebbe essere la causa del tuo errore, prova a togliere la i dalle parentesi.

roldo
03-03-2012, 10:28
Originariamente inviato da linoma
Nessuna ่ che potrebbe essere la causa del tuo errore, prova a togliere la i dalle parentesi.

Mi da >>>
../prvcmp.c:14: error: redefinition of parameter ‘v’

linoma
03-03-2012, 10:29
credo che debba prenderti qualche testo e approfondire il C. Hai 2 o + variabili con lo stesso nome. :)

roldo
03-03-2012, 10:38
Originariamente inviato da linoma
credo che debba prenderti qualche testo e approfondire il C. Hai 2 o + variabili con lo stesso nome. :)
No, no. Ho fatto il programmino con il main vuoto e la funzione che vedi e il risultato ่ quello che ti sto
dicendo.
Va beh .chiudo in attesa di tempi migliori, ciao.

ramy89
03-03-2012, 11:55
Se solo ascoltassi quello che ti dicono:




int Mstrcmp( char *v1 , char *v2); // qua i non esiste ancora



int main()
{


int i ; // inizializza i

.....
......

if (Mstrcmp (v[i] , v[left]) < 0 ) // left non esiste, v non esiste

.................
.................

}



int Mstrcmp(char *v1 , char *v2)

{
int i ;

for ( i= 0; v1[i] == v2[i] ; i++ )

if (v1[i] == '\0' )
return 0 ;

return v1[i] - v2[i];



}


Indenta bene il codice.

Loading