|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
|
[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; } |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
no, la funzione è sbagliata, non puoi restituire cose che puntano nello stack perché quando esci dalla funzione vengono distrutte.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
|
che soluzione potrei adottare?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
|
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! |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Codice:
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);
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#6 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Quote:
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.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
|
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)...
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 23-10-2005 alle 01:07. |
|
|
|
|
|
#8 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16213
|
Quote:
Allora: come prima, sostituendo malloc con new[], e free con delete[].
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
|
Ottimo.
Ora ho rinfrescato un po' le mie conoscenze, ho capito come muovermi. Thnks! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:59.



















