Salve a tutti,
ho una struct di questo tipo:
con una funzione carico le informazioni di magazzino.nomi per n volte:codice:struct array{ char nomi[50][25]; float prezzi[50]; }magazzino;
dove il parametro (char *p) è inizializzato nel main() in questo modo: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]); } }il mio problema è ordinare secondo il bubble sort il vettore magazzino.nomi[].codice:char *p=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:
Bene. Questo codice mi funziona se lo uso nel main ma non funziona se lo uso in una funzionecodice://dopo aver eseguito la funzione carica(&p): void ordina(char *p){ if(*p>*(p+25)){ ..... } },
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!

,
Rispondi quotando
