View Full Version : [C++] puntatori ed array
Ciao a tutti,
se io nel main ho una cosa del genere:
double [] funzione();
int main(){
double elementi[];
elementi = funzione();
// una volta chiamata la funzione posso fare elementi[5]?
return 0;
}
//dove funzione e' cosi' definita:
double [] funzione(){
double aggiornamentoDimensioneArray [100];
return aggiornamentoDimensioneArray;
}
no, la funzione è sbagliata, non puoi restituire cose che puntano nello stack perché quando esci dalla funzione vengono distrutte.
che soluzione potrei adottare?
Ma se io voglio che una funzione mi inserisca i valori in un array che gli passo dal main, e' possibile farlo senza dover specificare nel main la dimensione dell'array?
Come?
Grazie!
che soluzione potrei adottare?
void DoSomethingOnThisArray(double arrayOfDoubles[], int numberOfElements)
{
for (int i = 0; i < numberOfElements; ++i)
{
// do something cool here with arrayOfDoubles[i]
}
}
...
double myArrayOfDoubles[ARRAY_SIZE];
DoSomethingOnThisArray(myArrayOfDoubles, ARRAY_SIZE);
Ziosilvio
23-10-2005, 00:33
double elementi[];
elementi = funzione();
Non puoi assegnare un valore a un array.
Se vuoi creare array senza sapere all'inizio la loro dimensione, devi usare malloc e free.
Mi sa che sono il prossimo argomento del tuo corso di C.
jappilas
23-10-2005, 01:04
oppure, visto che nel titolo c'è scritto c++, implementi l' Array come una classe contenente un metodo Resize che implementerai con new (creazione del nuovo array) e delete (distruzione del vecchio array dopo aver effettuato una copia dei valori nel nuovo)...
Ziosilvio
23-10-2005, 11:12
nel titolo c'è scritto c++
Ops... chiedo venia... sapete, la forza dell'abitudine, l'ora tarda... :mc:
Allora: come prima, sostituendo malloc con new[], e free con delete[].
Ottimo.
Ora ho rinfrescato un po' le mie conoscenze, ho capito come muovermi.
Thnks!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.