PDA

Visualizza la versione completa : [c]gestione array


MarBar8M
05-01-2008, 00:28
Salve a tutta la community di HTML!
Sono uno studente di ing. informatica a Napoli che ha un problema con la gestione di un array.
Voglio risolvere tale problema dato che a breve ho l'esame scritto... e l'unico cruccio che ho è proprio questo: in un programma assegnatomi dal prof ho trovato un piccolo intoppo.
Praticamente dovrei effettuare una ricerca sequenziale di elementi in un array il cui risultato deve essere a sua volta un array che contiene le posizioni dell'elemento cercato all'interno dell'array stesso. Ho trovato la cosa molto semplice... ma al tempo stesso da grattacapo :dhò: .
Questa è la funzione:

void ricerca_sequenziale(vettore v, vettore r, int n, int &j, int *e){
register int i;
j=0;
printf("Inserisci l'elemento da ricercare all'interno del vettore: ");
scanf("%d", e);
for(i=0;i<n;i++){
if(*e==v[i]){
r[j]=i+1;
j=j+1;
}
}
}

La funzione qui posta non funge...
Mi sono confrontato con un amico di facoltà, il quale mi ha cambiato i parametri d'ingresso in maniera a me non chiara:

void ricerca_sequenziale(vettore v, vettore &r, int n, int &j, int *e){...

Secondo le mie poche conoscenze l'operatore & dovrebbe restituire l'indirizzo in memoria della variabile, cosa che qui non ci azzecca minimamente(almeno penso).
Volevo sapere se questa comunque è la soluzione giusta e se si percché mettere &, altrimenti quale potrebbe essere una soluzione alternativa?
Grazie di cuore! Aspetto belle risposte :unz:

P.s.: se avete bisogno vi passo l'intero programma.

MacApp
05-01-2008, 00:37
studiati i riferimenti, che altro non sono, in parole povere, una scorciatoia sintattica per i puntatori, con un piccolo particolare: in C non esistono (sono una peculiarità del C++)

MarBar8M
05-01-2008, 09:45
Appunto :S . Non ho utilizzato alcun passaggio per riferimento.
E poi in un parametro formale non ci metterei mai & per una questione di logica. Piuttosto userei nel richiamo della funzione & e nel parametro formale il puntatore *...

Loading