Quote:
Originariamente inviato da sirus
ma ora come posso fare???
|
Non si fa'

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;
E' un po' piu' macchinoso e lento della versione equivalente C, ma e' sicuro che funzioni per ogni tipo di oggetto C++.
Se vuoi una versione piu' concisa puoi usare STL.