Redimensionner un tableau

nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008 - 8 janv. 2006 à 13:49
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 8 janv. 2006 à 20:44
Bonjour, j'ai un tableau qui a pour dimension 'max', et j'aimerais ne garder que les nn dernieres valeurs du tableau; mais je ne sais pas comment faire .

Pourriez vous m'aider ?

Merci d'avance

Nisalon CAje

8 réponses

rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
8 janv. 2006 à 18:11
bah tu cree un nouveau tableau (du meme type ...) de taille n tu
stocke tes n données dans le nouveau et tu recrée un nouveau tableau ...

int max = 10;

int n = 3;

int *tab;

tab = new int[max];

/**

maitenant le code interresant

**/

int tab2[n];

for(int i=0;i<n;i++)tab2[i] = tab[max + i-n];

tab = new int[n];

for(int i=0;i<n;i++){tab[i]=tab2[i];}

je pense ...
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
8 janv. 2006 à 18:24
En gros, mais faut pas oublier les delete[], ce que rrk275 n'a pas mis.
0
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
8 janv. 2006 à 18:48
les deletes sont obligatoire ?
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
8 janv. 2006 à 19:02
Si tu programmes toujours sur un OS. L'OS est la pour rattraper les
conneries du programmeur: genre oublier de libérer de la mémoire
(l'utilité du delete[]). Donc dans ce cas la, ya pas trop de problème.
Mais tu peux vite faire planter ton programme et ton OS, si tu arrives
a saturation de mémoire dans le cas ou tu en utilises beaucoup.
Evidemment pour un tableau de 10 entiers ..., mais si il en fallait 15
millions et que tu fais une boucle qui fait ca 100 fois, sans faire un
delete => je te laisse imaginer.



Et puis, si tu veux faire de la prog grados, tu fais comme tu veux.



Si l'OS n'est pas la. Oublier de libérer de la mémoire => catastrophique.
0

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

Posez votre question
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008
8 janv. 2006 à 19:38
pourriez vous me donner la syntaxe à utiliser pour les delete ?
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
8 janv. 2006 à 20:20
Quand, c'est pas un tableau:

int * tab = new int;



delete tab;



Si c'est un tableau:

int * tab = new int[15];



delete[] tab;
0
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
8 janv. 2006 à 20:26
C'était juste une question .. j'en utilise pas beaucoup (de new int et tt et tout)
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
8 janv. 2006 à 20:44
Mais quand je dis "si tu veux faire", le "tu" n'est pas pour toi :) C'est un truc impersonnel :) Un genre de "on".
0
Rejoignez-nous