[c++] Quesito su allocazione dinamica
ciao ragazzi,mi sapete dire se questa operazione è lecita?????
struct dati
{
int x;
int y;
int z;
}
int numero;
cout<<"Inserisci un numero"<
cin>>numero;
new= dati temp[numero];
questo frammento di codice è totalmente sbagliato cmq vi spiego a parole quello che vorrei fare:
Creo un vettore di strutture come riporta la scrittura:
" dati temp[numero]"
solo che per fare qualcosa del genere devo usare l' allocazione dinamica e la definizione che ho nel mio libro sarebbe(dato p un puntatore)
" *p=tipo[dimensione]" //per allocare vettori
pero' devo mettere insieme le due cose
ovvero: allocare un vettore di strutture solo che non riesco a capire come devo scrivere tale definizione
struct dati
{
int x;
int y;
int z;
}
int numero;
cout<<"Inserisci un numero"<
new= dati temp[numero];
questo frammento di codice è totalmente sbagliato cmq vi spiego a parole quello che vorrei fare:
Creo un vettore di strutture come riporta la scrittura:
" dati temp[numero]"
solo che per fare qualcosa del genere devo usare l' allocazione dinamica e la definizione che ho nel mio libro sarebbe(dato p un puntatore)
" *p=tipo[dimensione]" //per allocare vettori
pero' devo mettere insieme le due cose
ovvero: allocare un vettore di strutture solo che non riesco a capire come devo scrivere tale definizione
Risposte
ma se lavori in c++, perche nn usi ?
In realta' vector non tutti lo fanno... anche a noi all'uni abbiamo saltato i vettori e fatto direttamente gli array. Infatti me li ero iniziati a leggere sul libro ma poi non c'erano nelle dispense del prof. Abbiamo fatto solo gli array. Anche se, leggendoli, i vettori mi sembrano piuttosto pratici, perche' puoi sempre aumentare la dimensione, invece gli array sono statici.
Se poi consideri che a pablo1986 fanno usare ancora l'header capisci perche' non usa vector...
Se poi consideri che a pablo1986 fanno usare ancora l'header

evidentemente c'è qualcosa che mi sfugge ma evio di chiedervi il significato di .
Cmq in teoria avrei risolto il mio problema,grazie delle vostre attenzioni^_^
Cmq in teoria avrei risolto il mio problema,grazie delle vostre attenzioni^_^
vector è un contenitore (array dinamico) messoti a disposizione dalla STL (la libreria standard)
A meno che nn ti sia espressamente vietato o detto di farlo a mano, è generalmente una buona idea sfruttare quello ke il linguaggio di mette a disposizione è la libreria standard, quindi ti garantisce portabilità)
E' un po come reinvntare la ruota. Se hai gia a disposizione lo strumento che ti gestisce un array e la rilocazione di memoria... perke farlo ?
A meno che nn ti sia espressamente vietato o detto di farlo a mano, è generalmente una buona idea sfruttare quello ke il linguaggio di mette a disposizione è la libreria standard, quindi ti garantisce portabilità)
E' un po come reinvntare la ruota. Se hai gia a disposizione lo strumento che ti gestisce un array e la rilocazione di memoria... perke farlo ?

Esagerato usare vector per una cosa cosi piccola
Abbiamo ridimensionato l'array!
truct dati { int x; int y; int z; } int numero; cout<<"Inserisci un numero"<<endl; cin>>numero; dati *PtrDati = new dati[numero]; cout <<"Inserisci il nuovo numero" <<endl; cin >>numero; delete[] PtrDati; PtrDati = new dati[numero]
Abbiamo ridimensionato l'array!
Alla fine la classe vector non è altro che una classe che fa le stesse cose del codice che ho postato sopra, ma utilizza i template per garantire una completa aderenza a tutti i tipi di dato.
E poi un array non è altro che un indirizzo di memoria al suo primo elemento, quindi alla fine è un puntatore.
quindi deduciamo che &array = array[0]
E poi un array non è altro che un indirizzo di memoria al suo primo elemento, quindi alla fine è un puntatore.
int array[10];
quindi deduciamo che &array = array[0]
grazie mille vincent^_^
Sbaglio o sei anche sul forum html? Li sono wolverine
si si ogni tanto posto anche li.