L'array dinamico di strutture C ++





динамический массив структур

L'array dinamico di strutture analizziamo l'esempio. Dobbiamo risolvere il seguente problema: l'utente inserisce i dati sulle sponsor del progetto. cioè – nome, il nome e la quantità di donazioni. Dopo ogni applicazione data-entry chiede: continuare a digitare o no. ogni volta, quando l'utente seleziona “procedere” – è necessario allocare un pezzo di memoria ha una struttura unica. Così un array dinamico di strutture crescerà, finché l'utente sospende voce. dopo aver inserito, visualizzare una tabella con le informazioni sulle sponsor sullo schermo.

Determinazione della struttura è in linee 5 – 10. Essa ha annunciato tre elementi Nome, cognome, somma. Sotto prototipi di funzione sono dichiarati, necessaria per risolvere il problema. La prima funzione Sponsor* AddStruct(Sponsor* obj, const int quantità); sarà allocare memoria per gli elementi di un array di strutture. secondo vuoto setData(Sponsor* obj, const int quantità); è responsabile per l'immissione di dati in una struttura. terzo vuoto showData(const Sponsor* obj, const int quantità); – Esso visualizza tutti i dati in una tabella. Le definizioni di queste funzioni saranno discussi di seguito.

Per creare un array dinamico di strutture, mosto, da creare solita gamma dinamica, dichiarare un puntatore. Solo che invece di tipo incorporato per specificare la struttura di una maniglia – fila 20. Questo indicatore è nulla sui punti. Sarebbe possibile allocare memoria per un array di strutture contemporaneamente. per esempio:

динамический массив структур

Ma organizzeremo una ripartizione più flessibile di memoria per la matrice dinamica di strutture – sarà assegnata in base alle esigenze. C'è uno sponsor – Si alloca la memoria per una struttura. ci sono 3 sponsor – memoria viene allocata prima sotto un'unica struttura, poi un secondo e un terzo. Tutto dipenderà – decide se l'utente continua a immettere.

linee 21 – 22, variabili dichiarate sponsorAmount – contare il numero di sponsor e Si o no – selezione dell'utente (continuare o interrompere la voce).

linee 24 – 34: qui è il ciclo fare durante. Esso viene eseguito fino a quando, fino a quando l'utente deve inserire i dati. on line 26 chiamare il, che alloca la memoria per la struttura OurSponsors = AddStruct(OurSponsors, sponsorAmount); Abbassato alla sua definizione in linee 42 – 61. Qui si può vedere, che questa funzione restituirà un puntatore a una struttura Sponsor. Ci vogliono due parametri – un puntatore alla struttura e il numero delle strutture. Quando viene chiamato per la prima volta – invierà un annuncio in principale pointer OurSponsors e variabili sponsorAmount, che è zero. Nel blocco funzione viene eseguita Se – Si alloca la memoria per una struttura (linee 44 – 47). Poi la funzione restituisce un indirizzo (pointer) questa sezione di memoria e sarà registrata in OurSponsors – fila 26.

on line 27 chiamare il, che permetterà di rendere una struttura dati. La sua definizione è in linea 63 – 73. Dopo aver inserito i dati, variabile sponsorAmount incrementato. All'utente viene chiesto di fare una scelta – continuare a entrare o uscire dal. Se si continua – ancora una volta, la funzione è chiamata AddStruct().




Va ricordato, il puntatore OurSponsors già si riferisce alla posizione di memoria con dati registrata. Quindi non solo ottenere la memoria perevydelit. In primo luogo, è necessario prendersi cura di salvataggio dei dati. Guardate il blocco altro linee 48 – 59. on line 50 creare un puntatore temporanea. Sotto di essa allocare memoria per quantità + 1 strutture (vale a dire. più di una struttura, ciò che ha avuto la funzione). Successivamente, copiare i dati dall'oggetto ricevuto. strutture di array ultimo oggetto tempObj ostanetsâ nezapolnennym. Quando i dati vengono copiati, libera la memoria obj – fila 57 e scrivere il nuovo puntatore di indirizzo. Si punterà alla memoria, in cui sono memorizzati i dati e l'ulteriore area di memoria allocata per il riempimento di nuovi dati.

Ancora una volta, la funzione viene richiamata setData(), che permetterà di rendere i dati in una nuova sezione dedicata di stoccaggio – l'ultimo elemento di un array di strutture.

Quando un utente decide di immettere più dati – preme lo zero. Dopo questo, funzione lavoro showData() e lo schermo visualizzerà una tabella con i dati provenienti da tutte le strutture di array dinamico. Alla fine del programma non dimenticare di liberare memoria, che prende un array dinamico di strutture.

risultato – ingresso:

C ++ array dinamico di strutture

tavolo:

C ++ array dinamico di strutture

Per sostenere il nostro sito – cliccare sul salvadanaio e scegliere qualsiasi modo conveniente.

Newsletter nuove lezioni sulla programmazione:

data
pagina
L'array dinamico di strutture C ++
valutazione
51stella1stella1stella1stella1stella

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>