Salve a tutti,
ho una struct di questo tipo:
codice:
struct array{
char nomi[50][25];
float prezzi[50];
}magazzino;
con una funzione carico le informazioni di magazzino.nomi per n volte:
codice:
void carica(char *p,int n){
int i=0;
for(i=0;i<n;i++){
printf("\nInserire il nome del prodotto %d :",i+1);
scanf("%s",magazzino.nomi[i]);
}
}
dove il parametro (char *p) è inizializzato nel main() in questo modo:
codice:
char *p=magazzino.nomi;
il mio problema è ordinare secondo il bubble sort il vettore magazzino.nomi[].
Provando a determinare il maggiore fra il puntatore corrente e l'omonimo +25 (per portarmi al secondo elemento), in una funzione, riscontro alcuni errori es:
codice:
//dopo aver eseguito la funzione carica(&p):
void ordina(char *p){
if(*p>*(p+25)){
.....
}
}
Bene. Questo codice mi funziona se lo uso nel main ma non funziona se lo uso in una funzione
,
In poche parole non riesco a fare un paragone fra il puntatore di i elemento e quello di i+1 elemento.
Può qualcuno spiegarmi il motivo?
Grazie in anticipo!