LoGiX |
|
| Mentre mi esercitavo col C++, mi sono accorto che c'era solo new e delete nel C++.. Peccato, mi ero affezionato a realloc(); Ed ecco qui un versione per il C++: CODICE int* realloc(int* a, int oldsize, int newsize) { int *b = new int [newsize]; int max = (oldsize > newsize ? newsize : oldsize);
for(int i = 0; i < max; ++i) { b[i] = a[i]; }
delete [] a; return b; } Ecco un esempio: CODICE #include <iostream>
using namespace std;
int* realloc(int*,int,int);
int main() { int *b = new int[2]; b[0] = 4; b[1] = 5;
b = realloc(b,2,3); b[2] = 6;
cout << b[0] << endl; cout << b[1] << endl; cout << b[2] << endl; delete [] b;
return 0; }
int* realloc(int* a, int oldsize, int newsize) { int *b = new int [newsize]; int max = (oldsize > newsize ? newsize : oldsize);
for(int i = 0; i < max; ++i) { b[i] = a[i]; }
delete [] a; return b; }
|
| |