PDA

Visualizza la versione completa : puntatori e array..argh!!


zorz
19-09-2002, 16:25
:)
salve a tutti, come molti ,credo, hanno incontrato difficolt a digerire l'argomento, anch'io ho i miei limiti..dunque aiutatemi a trovare l'inghippo del mio ragionamento:
..int i=5 assegna alla variabile il valore 5 nella memoria STATICA
..int*i=new int(5) " " " " " " DINAMICA
..OK??
..int i[10]={0,1,2,..} crea un array e mette la var. nello STACK..
e per metterla nell'HEAP..??
Nella guioda di HTML.IT c' una faq che parla di allocare e deallocare un array dinamico.. la stessa cosa vero??
beh..se no ,e se avete voglia..spiegatemi anche questo allora:

Clienti* cl = new Clienti[50];
// .....
delete [] cl;

grazie, Zorz:)

P.S. intanto che ci siamo..:quipy: ..come si crea un array bidimensionale A[i][j]..??ciao..;)

ChReAn
19-09-2002, 16:30
Originariamente inviato da zorz
:)
..int i[10]={0,1,2,..} crea un array e mette la var. nello STACK..
e per metterla nell'HEAP..??


Le variabili locali e le chiamate a funzione vanno nello stack, le variabili globali nell'heap.



Nella guioda di HTML.IT c' una faq che parla di allocare e deallocare un array dinamico.. la stessa cosa vero??
beh..se no ,e se avete voglia..spiegatemi anche questo allora:

Clienti* cl = new Clienti[50];
// .....
delete [] cl;


Qui non si fa altro che allocare un array di 50 istanze della classe Clienti.
Con delete si dealloca. Tutto qui.

zorz
19-09-2002, 19:34
:dh: :dh: :dh:
..e se io voglio allocare un array nella memoria dinamica??
..int i[2]={100,200} dova alloca l'array??
..Clienti* cl = new Clienti[50]..cosa significa allocare un array in una classe??
..come si crea un array bidimensionale A[i][j]??
grazie zorz:)

ChReAn
20-09-2002, 09:52
Originariamente inviato da zorz
:dh: :dh: :dh:
..e se io voglio allocare un array nella memoria dinamica??

Che cosa intendi per memoria dinamica? Intendi lo stack?
O intendi allocare un array DINAMICAMENTE?
Se intendi questo, fai cosi':

int *i = new int[50];



..int i[2]={100,200} dova alloca l'array??


Dipende se e' una variabile locale ho globale, ti ho detto. ;)



..Clienti* cl = new Clienti[50]..cosa significa allocare un array in una classe??


Non e' un array IN UNA CLASSE! Ho detto Array DI ISTANZE DI UNA CLASSE. Invece che avere un array di int, hai un array di Clienti.



..come si crea un array bidimensionale A[i][j]??

Esattamente come un array monodimensionale:

int a = new int[3][4];



grazie zorz:)

Prego, ma la prossima volta leggi meglio quello che ti rispondo ok? :tongue: :ciauz:

zorz
20-09-2002, 11:42
scusa:( ..e grazie..:)

zorz
20-09-2002, 11:50
:dott:
..e comunque..scusa per la mia ignoranza nell'argomento ma dovresti essere pi preciso con i neofiti..lo STACK la memoria STATICA, e l'HEAP quella DINAMICA..e non viceversa..:quipy:Zorz :D

ChReAn
20-09-2002, 15:42
Vabbe'... Quanti sofismi per un po' di memoria... ;) :tongue:
:ciauz:

r0x
21-09-2002, 03:26
zorz:

Mah.. io non andrei tanto per il sottile e piuttosto che criticare ringrazierei ChReAn che ti ha aiutato a dovere. ;)

Inoltre ti informo che lo stack e` memoria dinamica. Cerca in qualche libro o documentazione sulle strutture dati e saprai il motivo... :D

Ciao .. e studia! :tongue:

zorz
22-09-2002, 12:00
..non c' dubbio che ringrazio ChReAn per la sua disponibilit e per le informazioni che mi ha dato..e st studiando..ma non facile studiare un argomento se da una parte trovi una cosa e dall'altra l'opposto..nel caso in questione bisogna decidersi..se lo STACK la memoria dinamica mi spieghi perch la guida di HTML.IT dice il contrario (tanto per darti un link, ma se prosegui nella guida almeno lei coerente..: programmazione.html.it/c/c_15.htm ), e anche il testo che ho appena acquistato ,'C++ corso di programmazione',dice lo stesso.. se guardi l'indice ,la parola 'HEAP' ti rimanda all'allocazione di memoria dinamica tramite puntatori..forse..non ho tutti i torti a lamentarmi..no??:dott: ciao zorz;)

afurly
22-09-2002, 12:31
scusate se mi intrometto,
ma mi piace dire la mia :D , sono d'accordo col dire:

stack --> statica
heap --> dinamica

o comunque a me i prof hanno sempre detto cos,

cia cia :ciauz:

Loading