Que fait exactement delete ??

Résolu
Signaler
Messages postés
25
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
7 mars 2006
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Salut @ tous



Voila je voudrais savoir si en créant un tablo dans un fonction ,
l'instruction delete va -t- elle supprimer la totalité du tablo ou
juste la première adresse de celui-ci. Voila les instructions que
j'utilise:



char * monTab = new char[taille];

[......]

delete monTab;



Car avant j'essayais avec un tablo fixe mais le compilateur me jete pour l'intruction delete:



char monTab[taille];

[.....]

delete monTab;

Mici pour les divers renseignements

Tonus

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Serait plus surement:
delete [] montab;

libere toute la zone memoire occupee precedemment par le tableau.

ciao...
BruNews, MVP VC++
Messages postés
25
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
7 mars 2006

Merci Beaucoup, mon code marche nikel now

Mici pour les divers renseignements

Tonus
Messages postés
78
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
23 avril 2010

Le delete ne libere la memoire que lorsque elle a été précedemment
allouée avec un news c'est pourquoi le compilateur te jette lorsque tu
veux faire un delete sur un tableau declaré de facon statique.


Mess with the best, die like the rest
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
theneoiceman> Le compilateur est con. Si tu fais


int* x;

delete x;





il va te compiler ca alors que ca n'est pas alloué