Quote:
Originariamente inviato da darksax
A grandi linee
Fondamentalmente usi un'allocazione dinamica di un'array quando non puoi definire la la grandezza se non a runtime.
Lo svantaggio principale e' che per gestire un'allocazione dinamica dovrai scrivere del codice per "gestire" il puntatore alla matrice creata.
Considera che in c++ ti puoi appoggiare a classi che ti mascherano gran parte del lavoro di gestione
ovviamente un'allocazione dinamica ottimizza l'occupazione di memoria, xche' puoi utilizzare esattamente la quantita' che ti occorre.
Pensa un wordprocessor. aprendo un foglio bianco non sai ne quante righe scriverai e neppure di che lunghezza.
puoi optare x dei limiti preimpostati (rigcol[100][100]; ovvero 100 righe da 100 caratteri) oppure allocare dinamicamente di volta in volta sia la quantita di righe che la loro lunghezza.
Quindi se apro un foglio e scrivo solo "A" nel caso statico alloco 100x100=10000byte mentre nel caso dinamico alloco 1byte....
per allocare usi :
c++ ->>> new()
c ->>> malloc()
Spero di essere stato chiaro.... 
|
Inoltre lo stack ha una dimenisone definita a priori ed è << della memoria utilizzabile nel sistema
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
|