|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
[C - C++]Allocazione dinamica della memoria, differenza
Ciao a tutti, guardando il mio nuova manuale di C++ ho visto il nuovo metodo di allocazione dinamica della memoria e mi è subito venuto un dubbio
prima in C facevo così: Codice:
#include <calloc.h> ... double *p = NULL; ... p = (double *) calloc(10, sizeof(double)); cfree(p); Codice:
... double *p = NULL; ... p = new double[10]; ... delete p; prima facevo così: Codice:
p = realloc(p, _msize(p) + (5 * sizeof(double)); Ultima modifica di sirus : 01-03-2005 alle 15:07. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Re: [C - C++]Allocazione dinamica della memoria, differenza
Quote:
O meglio, non si fa come in C, ma in maniera "piu' lenta", perche' in C++ hai a che fare con oggetti che non possono in generale essere copiati bit a bit. Per questo motivo non esiste alcun modo in C++ standard per reallocare la memoria "in place" come in C. Finita la teoria, ora la pratica. Codice:
double* arrayOfDouble = new double[10];
...
// alloca un nuovo array
double* newArrayOfDouble = new double[20];
// copia il vecchio array in quello nuovo
for (unsigned int i = 0; i < 10; ++i)
{
newArrayOfDouble[i] = arrayOfDouble[i];
}
// cancella il vecchio array
delete[] arrayOfDouble;
// cambia nome al nuovo array
arrayOfDouble = newArrayOfDouble;
Se vuoi una versione piu' concisa puoi usare STL.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
grazie per le info
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ci tengo a precisare che in C++ è ancora possibile utilizzare malloc realloc e free, quindi puoi utilizzare realloc solo se il blocco l'hai allocato con malloc, non con new; in teoria potresti anche con new, ma è meglio di no.
ciao |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ah, ovviamente vale anche per calloc
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
Quote:
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Oppure usi vector e ti sbatti altamente dell'allocazione...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:31.



















