Dimension d'un tableau

Résolu
24 ans Messages postés 231 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 7 juillet 2008 - 26 sept. 2005 à 14:09
56ka Messages postés 140 Date d'inscription dimanche 15 avril 2007 Statut Membre Dernière intervention 2 novembre 2009 - 12 févr. 2008 à 21:05
je veux re-allouer de nouveau l'espace de memoire pour un tableau
(dynamiquement ) comment faire par un petit code.

Exemple : lorsque l'utilisateur tappe un nouveau entier il faut automatiquement aggrandire la taille du tableau.

9 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 sept. 2005 à 14:33
int[] newTab = new int[oldTab.Length + 1];
oldTab.CopyTo(newTab, 0);

newTab[newTab.Length] = nouvelleValeur;
oldTab = newTab;

Sébastien FERRAND
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 sept. 2005 à 14:17
l'équivalent tu ReDim du VB ?

donc :

int[] newTab = new int[oldTab.Length + 1];
oldTab.CopyTo(newTab, 0);

newTab[newTab.Length] = nouvelleValeur;

Sébastien FERRAND
0
24 ans Messages postés 231 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 7 juillet 2008 2
26 sept. 2005 à 14:31
je veux bien que le nom du tableau ne change pas ( même nom du tableau mais avec un taille plus grand ).
c'est comme la fonction Realloc en C (elle garde le même nom du tableau ainsi que les valeurs mais avec un taille plus grand)
Merci cher ami de ton aide
0
24 ans Messages postés 231 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 7 juillet 2008 2
26 sept. 2005 à 14:44
oldTab = newTab;
cette instruction ma echapper.
et il faut alors liberer le newTab ? (comment le faire) ou bien le garbge collecteur s' interresse !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 sept. 2005 à 14:55
euh... tu peux faire newTab = null

Sébastien FERRAND
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
27 sept. 2005 à 02:15
Si tu as besoin d'un tableau dynamique utilises un ArrayListpour te simplifier la tache, en interne un ArrayList utilise le même concept que vient d'expliquer Sébastien, à part que c'est la capacité du tableau qui est définie plutôt que la nombre réel d'éléments.
0
56ka Messages postés 140 Date d'inscription dimanche 15 avril 2007 Statut Membre Dernière intervention 2 novembre 2009
12 févr. 2008 à 10:05
Woha !!

Cette classe est magique !

ArrayList c'est de la balle ! Moi qui me fait chichi à créer des tableaux de 1000 cases (pour des personnages), me voila servi

Merci Lutinore et merci 24 ans d'avoir posé cette question avant moi [auteur/LUTINORE/498040.aspx ]
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
12 févr. 2008 à 20:13
56ka c'etait en 2005, depuis avec le .NET 2.0 on n'utilise plus la classe ArrayList mais la classe List< T > c'est une classe générique bien plus performante.

List< Personnage > list = new List< Personnage >( 10 ); // le reste s'utilise comme un ArrayList.
0
56ka Messages postés 140 Date d'inscription dimanche 15 avril 2007 Statut Membre Dernière intervention 2 novembre 2009
12 févr. 2008 à 21:05
ah ok merci [auteur/LUTINORE/498040.aspx Lutinore]de l'info.

Mais par contre je suis en train de faire un plugin qui est censé être compatible avec Outlook 2000 à 2007... donc je vais garder ArrayList pour ça.

Mais sinon je vais voir avec List<T> pour mes nouveaux progs.

a+ bonne soirée
0
Rejoignez-nous