cs_BenHur
Messages postés3Date d'inscriptiondimanche 17 mars 2002StatutMembreDernière intervention24 mars 2002
-
18 mars 2002 à 00:11
ADPro22
Messages postés126Date d'inscriptionmercredi 18 juillet 2001StatutMembreDernière intervention27 octobre 2004
-
24 mars 2002 à 00:27
Bonjour, j'aimerais savoir s'il existe une fonction en C++ pour redimensionner un tableau dynamiquement. Au même titre que REDIM en VB. Merci
cs_bidules
Messages postés48Date d'inscriptionsamedi 31 mars 2001StatutMembreDernière intervention11 avril 2004 18 mars 2002 à 20:44
Je ne sais pas s'il existe une tel fonction en c++
j'ai deja entendu parler de realloc et de malloc mais je nesais pas comment ca marche
Sinon tu peux contourner le probleme:
int *tab;
tab = new int[10];
//tes instructions et notament l'initialisation du tableau et les affectation
//dq tu veux redimenssioner
int *tmp;
tmp=tab;
tab = new int [nouvelle valeur];
for(int i = 0;i<10;i++)
{
tab[i]=tmp[i];
}
delete[] tmp;
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 18 mars 2002 à 21:56
-------------------------------
Réponse au message : Attention malloc free sont des fonctions C tandis que new et delete c'est du C++
-------------------------------
Je ne sais pas s'il existe une tel fonction en c++
j'ai deja entendu parler de realloc et de malloc mais je nesais pas comment ca marche
Sinon tu peux contourner le probleme:
int *tab;
tab = new int[10];
//tes instructions et notament l'initialisation du tableau et les affectation
//dq tu veux redimenssioner
int *tmp;
tmp=tab;
tab = new int [nouvelle valeur];
for(int i = 0;i<10;i++)
{
tab[i]=tmp[i];
}
delete[] tmp;
-------------------------------
Réponse au message :
-------------------------------
Bonjour, j'aimerais savoir s'il existe une fonction en C++ pour redimensionner un tableau dynamiquement. Au même titre que REDIM en VB. Merci
ADPro22
Messages postés126Date d'inscriptionmercredi 18 juillet 2001StatutMembreDernière intervention27 octobre 2004 24 mars 2002 à 00:27
-------------------------------
Réponse au message :
-------------------------------
En C++, seules les fonctions new et delete sont disponibles.
Il n'est pas possible de redimensionner directement un tableau. En C, cela existe avec la fonction realloc.
Pour utiliser new et delete - sans boucle pour recopier les éléments, structures - il faut utiliser memcpy.
Voici un petit exemple :
#include
using namespace std;
void main()
{
int n;
int *i;
i = new int[5];
for(n=1;n<=5;n++)
{
i[n-1]=n;
}
for(n=1;n<=5;n++)
{
cout << i[n-1] << " ";
}
cout << endl << endl;
int *j;
j = new int[10];
memcpy(j,i,5*sizeof(int));
for(n=6;n<=10;n++)
{
j[n-1]=n;
}
for(n=1;n<=10;n++)
{
cout << j[n-1] << " ";
}
cout << endl;
delete [] i;
delete [] j;
}
-------------------------------
Réponse au message : Attention malloc free sont des fonctions C tandis que new et delete c'est du C++
-------------------------------
Je ne sais pas s'il existe une tel fonction en c++
j'ai deja entendu parler de realloc et de malloc mais je nesais pas comment ca marche
Sinon tu peux contourner le probleme:
int *tab;
tab = new int[10];
//tes instructions et notament l'initialisation du tableau et les affectation
//dq tu veux redimenssioner
int *tmp;
tmp=tab;
tab = new int [nouvelle valeur];
for(int i = 0;i<10;i++)
{
tab[i]=tmp[i];
}
delete[] tmp;
-------------------------------
Réponse au message :
-------------------------------
Bonjour, j'aimerais savoir s'il existe une fonction en C++ pour redimensionner un tableau dynamiquement. Au même titre que REDIM en VB. Merci