View Full Version : c++ array di struct !!HELP!!
Ciao a tutti ,è la prima volta che scrivo in questa sezione, proprio perche sono disperato e nn so come altro fare!!!per molti di voi sara una cavolata ma per me è un grande problema!!!devo svolgere un esercizio in c++ in cui mi viene richiesto
di caricare da tastiera in UN ARRAY DI RECORD (<-ed è qsto il mio problema!) un insieme di dati che rappresentano i risultati di un esame (nome matricola voto).Ho provato ad eseguire l'esercizio in maniera normale (es.scanf ("%s",vetS[i].nome);...) e pare che mi funzioni ora pero vorrei svolgerlo utilizzando una funzione!!!quindi in fine credo che il mio problema sia quello di riuscire a passare un array di struttura ad una funzione!!confido nella vostra enorme SAPIENZA!!se proprio nn volete aiutarmi datemi almeno un sito da visitare che possa aiutarmi (possibilmente in italiano) aiuto aiuto aiuto!!!
Ciao a tutti ,è la prima volta che scrivo in questa sezione, proprio perche sono disperato e nn so come altro fare!!!per molti di voi sara una cavolata ma per me è un grande problema!!!devo svolgere un esercizio in c++ in cui mi viene richiesto
di caricare da tastiera in UN ARRAY DI RECORD (<-ed è qsto il mio problema!) un insieme di dati che rappresentano i risultati di un esame (nome matricola voto).Ho provato ad eseguire l'esercizio in maniera normale (es.scanf ("%s",vetS[i].nome);...) e pare che mi funzioni ora pero vorrei svolgerlo utilizzando una funzione!!!quindi in fine credo che il mio problema sia quello di riuscire a passare un array di struttura ad una funzione!!confido nella vostra enorme SAPIENZA!!se proprio nn volete aiutarmi datemi almeno un sito da visitare che possa aiutarmi (possibilmente in italiano) aiuto aiuto aiuto!!!
Farlo utilizzando una lista???
in questa maniera:
struct record{char Nome[N]; int Matricola; int Voto;};
si questo lo ho gia fatto , poi ho dichiarato un vettore di quel tipo di struttura...(es.record vetS[5])ora nn riesco pero a passare il vettore di quel tipo alla funzione!!cmq grazie per aver risposto!!
si questo lo ho gia fatto , poi ho dichiarato un vettore di quel tipo di struttura...(es.record vetS[5])ora nn riesco pero a passare il vettore di quel tipo alla funzione!!cmq grazie per aver risposto!!
Non ho capito benissimo cosa vooresti fare... comunque prova a dare un occhiata da queste parti...
http://programmazione.html.it/guide/leggi/34/guida-c/
Dichiarazione:
per passare un vettore ad una funzione puoi fare in 2 modi (equivalenti):
o dichiari la funzione cosi':int funzione(voto* array){...}
o la dichiari cosi':int funzione(voto array[]){...}
Uso:
alla funzione bisogna passare l'indirizzo del primo elemento, ossia &arr[0]
cosi: funzione(&arr[0])
ma poiche' il nome dell'array (arr) senza parentesi quadre equivale ad &arr[0], si puo' scrivere cosi: funzione(arr)
trallallero
04-01-2007, 12:09
Ciao a tutti ,è la prima volta che scrivo in questa sezione, proprio perche sono disperato e nn so come altro fare!!!per molti di voi sara una cavolata ma per me è un grande problema!!!devo svolgere un esercizio in c++ in cui mi viene richiesto
di caricare da tastiera in UN ARRAY DI RECORD (<-ed è qsto il mio problema!) un insieme di dati che rappresentano i risultati di un esame (nome matricola voto).Ho provato ad eseguire l'esercizio in maniera normale (es.scanf ("%s",vetS[i].nome);...) e pare che mi funzioni ora pero vorrei svolgerlo utilizzando una funzione!!!quindi in fine credo che il mio problema sia quello di riuscire a passare un array di struttura ad una funzione!!confido nella vostra enorme SAPIENZA!!se proprio nn volete aiutarmi datemi almeno un sito da visitare che possa aiutarmi (possibilmente in italiano) aiuto aiuto aiuto!!!
non c'é niente di piú semplice che un passaggio per riferimento. Sembra spaventoso ma se ci pensi bene é una cazzata. Tu alla funzione passi l'indirizzo delle struttura, niente di piú. Immagina di dover passare una serie di valigie ad un tuo amico ... non é meglio dirgli: "guarda, stanno la, vattele a prendere sono in via Pippo 1" :D
Se non devi usare l'allocazione dinamica poi é semplicissimo.
provaci e facci sapere ;-)
Ok angel il mio problema è che devo passare un vettore di struttura....nn so se riesco a spiegarmi...
trallallero
04-01-2007, 12:24
Ok angel il mio problema è che devo passare un vettore di struttura....nn so se riesco a spiegarmi...
passa l'indirizzo del primo e il numero di elementi ;-)
Scusa ma nn capisco.....!!!!managgia :cry:
trallallero
04-01-2007, 12:39
Scusa ma nn capisco.....!!!!managgia :cry:
passi il puntatore all'array di strutture e quanto strutture sono:
void funzione( struct Allievo *pArray, int NumElem )
{
int i;
for (i = 0; i < NumElem; i++ )
{
fscanf( "%s", pArray[i].Nome );
...
}
}
salvo errori di distrazione dovrebbe essere corretto :)
trallallero
04-01-2007, 13:06
NB: questo é C non C++ ;)
col C++ minimo dovresti fare una
class Matricola
{
...
};
tomminno
04-01-2007, 20:25
NB: questo é C non C++ ;)
col C++ minimo dovresti fare una
class Matricola
{
...
};
Basta usare cin per acquisire da tastiera ed ecco fatto il programma in C++ :D
trallallero
04-01-2007, 20:30
Basta usare cin per acquisire da tastiera ed ecco fatto il programma in C++ :D
:D
meglio ancora se coronato da qualche ++ quà e là :asd:
Trallalero e la chiamata di funzione invece quale sarebbe?
trallallero
05-01-2007, 11:59
Trallalero e la chiamata di funzione invece quale sarebbe?
non so come hai fatto le strutture, ma dubito con l'allocazione dinamica.
Se le hai dichiarate tipo
EDIT : correggo
struct Matricola Mat[10];
chiami la funzione cosí;
funzione( &Mat[0], 10 );
come ti hanno giá detto scrivere &Ma[0] o Mat é uguale, ma non vorrei confonderti le idee :)
ok ok ci sono , per ora.....solo una cosa quel 10 accanto al nome dell'array cosa indica?perdona la domanda stupida!!
trallallero
05-01-2007, 12:12
ok ok ci sono , per ora.....solo una cosa quel 10 accanto al nome dell'array cosa indica?perdona la domanda stupida!!
il numero di elementi. Se tu crei un'array di strrutture di 10 elementi passi 10 sennó passi il numero che vuoi tu ma sempre corrispondente al numero di elementi.
La cosa migliore sarebbe un numero variabile ma dovresti poi capire l'allocazione dinamica e non mi sembra il caso adesso.
...infatti........ok grazie ragazzi sopratutto a te TRALLALERO!!!piu tardi provo e vi faccio sapere!!
trallallero
05-01-2007, 12:18
...infatti........ok grazie ragazzi sopratutto a te TRALLALERO!!!piu tardi provo e vi faccio sapere!!
di niente. Se poi vuoi postare il codice magari ti diamo qualche consiglio su altre cose ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.