View Full Version : [C++] Array di puntatori a record
Marasoft
11-03-2005, 07:32
Salve a tutti, vorrei porvi una domanda, forse stupida per molti ma sono agli inizi, sugli array di puntatori.
Dunque
in un progetto multifile
dopo aver dichiarato nel main un array di punatori a record:
int N = 4;
struct record {
-------
}
record *pr[N];
come si fa a passare come parametro di ingresso ad una funzione tale array *pr[N]....?
Ho provato con void push(rec *pr, const int N)... ma non va.. qualcuno sa aiutarmi?
grazie
:cry:
Originariamente inviato da Marasoft
Salve a tutti, vorrei porvi una domanda, forse stupida per molti ma sono agli inizi, sugli array di puntatori.
Dunque
in un progetto multifile
dopo aver dichiarato nel main un array di punatori a record:
int N = 4;
struct record {
-------
}
record *pr[N];
come si fa a passare come parametro di ingresso ad una funzione tale array *pr[N]....?
Ho provato con void push(rec *pr, const int N)... ma non va.. qualcuno sa aiutarmi?
grazie
:cry:
Non so se ho capito il problema, ma se hai dichiarato una struct record devi usarla come tale cioe' void push(record *pr, const int N) non void push(rec *pr, const int N).
Se posso permettermi: record non e' un gran nome x una struct... magari se riesci usane uno + significativo (in altri linguaggi potrebbe anche essere un tipo riservato).
i metodi per passare un vettore di puntatori sono questi:
Dichiarazioni:
int fun (int **vet);
o
int fun (int *vet[]);
o
int fun (int *vet[N]);//DOVE N e DEFINITO COME #define N 4
Ciao....
Marasoft
11-03-2005, 18:49
Grazie delle risp. ma non sono ancora riuscito a risolvere il prob.
x palu 15 : 1) nella prototipo della funzione avevo scritto rec per errore in realtà volevo scrivere record, lo so che non è molto appropriato come nome ma era un esempio.....
x tglman: io devo passare alla funzione un vettore di puntatori a record... non un vettore di puntatori ad intero.....
vi prego aiutatemi...
Basta cambiare int in record (il mio era solo un esempio)
void push(record **pr);
o
void push(record *pr[]);
o
void push(record *pr[N]);//dove n e definito #define N 4
Forse però non ho capito bene tu voi un vettore di puntatori a record, analizziamo un attimo, un qualcosa del tipo
rec *pr[]={p1,p2,p3};
si dorebbe funzionare con questi prototipi, ricordati di usare il vettore cosi:
pr[n]->campo;
Marasoft
12-03-2005, 06:27
Grazie tglman per il tuo aiuto....
Hai perfettamente capito cosa intendevo... però la cosa misteriosa è che anche io sapevo che il passaggio si faceva nei modi che tu hai elencato... ma la cosa strana è che il sorgente non compila mi dice:
"record" was not declared in this scope
"pr" was not declared in this scope
Sto impazzendo è la prima volta che studio qualcosa all'università e non riesco a metterla in pratica .....
Secondo me ti sei perso un punto e virgola da qualche parte...
Scusa perchè non ci posti il codice, e poi che compilatore stai utilizzando..
Ciao
Marasoft
13-03-2005, 19:15
Sto utilizzando il dev 4.9 col compilatore integrato mi pare sia il mingc.... :confused:
il progetto è multifile come faccio a postare tutto?
VegetaSSJ5
14-03-2005, 09:21
prendi tutti i file, li zippi e lo alleghi ad un post. se lo zip è + grande di 25000 bytes allora fai 2 files zip.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.