[C++] Funzione realloc() per Array

« Older   Newer »
  Share  
LoGiX
CAT_IMG Posted on 27/1/2012, 15:48     +1   -1




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;
}
 
Top
Doch88
CAT_IMG Posted on 27/1/2012, 15:52     +1   -1




Se devi usare realloc a 'sto punto usa Vector
 
Top
1 replies since 27/1/2012, 15:48   89 views
  Share