Newsgroup: it.comp.lang.c++
Titolo: Array di dimensioni ignote

Devo dimensionare un Array di dopo aver verificato il numero di voci che
effettivamente mi servono, come posso fare?
Grazie.

 effettivamente mi servono, come posso fare?
Allocandolo dallo heap con operator new.
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it


ossia:
int *array= new int[Numero_Ignoto_di_valori_a_compile_time];

Grazie Cristiano, purtroppo la mia conoscenza di C è limitata, provengo dal
VB e ho qualche difficoltà.
Ringrazio anche Maurizio per la celere risposta, da cui non ho capito
niente, più per ignoranza mia che altro.

 effettivamente mi servono, come posso fare?
Lo fai con un array dinamico...
In pratica crei un puntatore ad un oggetto del tipo che vuoi trattare, e
quando sai la dimensione crei il vettore dinamico!
Se usi interi:
int* p = 0; (crea il puntatore e lo pone a Null, non si sa mai!)
Quando hai n = numero di elementi
p = new int[n];
E naturalmente devi "ricordarti" di n in quanto in c++ non verngono rilevati
gli errori di accesso fuori dal range!
--
| /
| \Byte - Andrea Briganti
E-Mail 
kbyt...@freemail.it
ICQ 40872731

 Lo fai con un array dinamico...
Essendo in C++ forse sarebbe meglio
vector <int> vi;
EMG

 vector <int> vi;
Una domanda:
cosa c'è di male in un:
tipo* p[];
p = new tipo[dimensione];
?
Personalmente non ho ancora avuto occasione di usare STL, ma credo che anche
così vada benissimo, no?
--
Alessandro Monti



Il vantaggio principale e` che non devi preoccuparti di allocare e 
deallocare l'array... ci pensa vector in automatico.
Inoltre utilizzando gli iteratori disaccoppi la struttura dati
dal codice che la usa.
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

 ?
Niente. Ma dato che il tipo std::vector è parte integrante del C++
perché non utilizzarlo se non ci sono particolari controindicazioni?
EMG

 vector <int> vi;
Si, ma vector non è una classe che va definita??? Oppure adesso la danno di
"serie" con i vari compilatori???
P.S. Tu non scrivevi anche su Fido?


 dal codice che la usa.
Mmmmhhhh...
Mi sa che sono arcaico. Io penso ancora ad una minima compatibilità con il C
e con il Pascal.
Grazie anche a EMG per le risposte
Suppongo che per le vecchie e care liste abbiate una risposta simile, vero?
Contravvenendo ad ogni norma di buon senso, di solito implemento una
struttura di più elementi con liste concatenate doppie prima ancora che con
array, anche se magari poi queste subiscono una trasformazione drastica...
Probabilmente se usassi vector o list non dovrei poi cambiare molto codice.
Mi toccherà studiarmi STL?
--
Alessandro Monti
P.S.
Visto che mi sto già sp.....ando, dico anche che non uso gli stream? :-)))

Visto che mi sto già sp.....ando, dico anche che non uso gli stream? :-)))
Anche quella sarebbe una lacuna da colmare...


"serie" con i vari compilatori???
E` standard...
se non erro basta:
#include <vector>
using std::vector;


 "serie" con i vari compilatori???
vector fa parte della libreria standard, e
praticamente tutti i compilatori la forniscono
(gia' da qualche anno).
Per usarla e' necessario un  #include <vector>
	Mauro

 P.S. Tu non scrivevi anche su Fido?
Certamente! Anzi, ci scrivo ancora...
EMG

 Per usarla e' necessario un  #include <vector>
Che bello, anche se io al momento non potrò usarle visto che per l'esame di
fondamenti II queste cose ce le dobbiamo costriure da soli, dove posso
trovare una documentazione abbastanza completa sulle STL???


 trovare una documentazione abbastanza completa sulle STL???
http://www.sgi.com/Technology/STL/
	Mauro

 Certamente! Anzi, ci scrivo ancora...
Io ci tento tramite il server news di Murè.... Solo che spesso e volentieri
è down!
