begin process at 2012 05 30 10:29:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

utilisation de delete


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

utilisation de delete

lundi 27 décembre 2004 à 10:47:46 | utilisation de delete

thiosyiasar

Bonne fête à tous !!!!

En cette fin d'année, je suis confronté à un petit pb lors que mon application se termine, j'ai une erreur en relation la mémoire lorsque je manipule des volumes importants de données. Je pense que cela vient du fait que je n'utilise pas delete.

Je stocke ces données dans une structure sous la forme suivante.

struct CmcMetaTableStruct
{
unsigned char psName[TBL_NAME_LENGTH]; // Nom de la table
CmcMetaFieldStruct ptFields[FLD_ITEM_COUNT]; // Champs
unsigned int iLogicalFieldCount; // Nombre de champ logique
unsigned int iPhysicalFieldCount; // Nombre de champ physique
};

struct CmcMetaDataStruct
{
CmcMetaTableStruct *ptTables; // Liste des tables
unsigned int iLogicalTableCount; // Nombre de table logique
unsigned int iPhysicalTableCount;// Nombre de table physique
};

J'ai donc des tableaux fixes et variables
Je fait donc

CmcMetaDataStruct* ptMetaData = new CmcMetaDataStruct;

Je compte les tables puis je fait

ptMetaData->ptTables = new CmcMetaTableStruct[Nombre de tables];

pas besoin de faire un new lorsque le table est fixe

je traite puis maintenant faut que je passe je libère la mémoire

MA QUESTION : comment on utilise delete ?

Je pensai faire

delete [Nombre de tables] ptMetaData->ptTables;

puis

delete ptMetaData;

Suis je dans le vrai ?

Nico
lundi 27 décembre 2004 à 11:25:20 | Re : utilisation de delete

ymca2003

Réponse acceptée !
delete [] ptMetaData->ptTables;
delete ptMetaData;

delete[] lorsque l'on fait new[...];
delete lorsque l'on fait new

lundi 27 décembre 2004 à 21:02:45 | Re : utilisation de delete

pmbala


oui tout à fait d'accord avec toi,si ce n'est qu'il serait aussi souhaitable d'initialiser le pointeur à NULL apres le delete pour etre certain que l'espace est bien libéré!!!
YMCA2003, je tiens encore à te remercier pour mon pb des arbres binaires de ce matin,ça marche comme sur des roulettes!!!je vais d'ailleurs le poster pr en faire profiter les autres...lol
mardi 28 décembre 2004 à 12:43:30 | Re : utilisation de delete

thiosyiasar

Merci pour la réponse simple et efficace

Nico


Cette discussion est classée dans : nombre, table, int, delete, unsigned


Répondre à ce message

Sujets en rapport avec ce message

Pb d'allocation avec New [ par iunknow ] Salut,J'ai un petit pb d'allocation avec le new à partir d'une certaines taille que ne me parrait pas énorme.retMetaData->ptViews = new CmcMetaViewStr probleme allocation memoire dynamique [ par neutrix ] salutvoilaj'ai besoin d'aideje dois convertir un nombre en tableau de chiffres Debug Error sous VC++ [ par iaco71 ] Quand je compile mon programme j'obtiens une jolie erreur Microsoft Visual C++ Debug LibraryDAMAGE : after Normal block ...Je ne l'obtiens plus si j'e problème Win32 Api [ par Toadstool ] J'ai Visual C++ 6 Introductory Edition et j'ai programmé une classe censée représenter une fenetre mais quand dans le constructeur de la classe j'ecri unsigned long int [ par W@$h! ] saluje pense que tout le monde sait faire ça : int valeur = 4;printf("%i", valeur);mais quelqu'un peut'il me dire comment faire pour afficher un unsig PB avec listview [ par julienbj ] J'ai cree un listview avec les styles:LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROPLVS_REPORT | LVS_EDITLABELSWS_VISIBLE |WS_CHILD | WS_TABSTOPDans ce list Aide event gtk+ / dev cpp / c++ [ par Toxiko ] Ceci est le constructeur de ma case pour un jeu de plateauj'aurais aimé pouvoir appeler une fonction qui change l'image (gui_case::set(int i)) [cpp]g calcul en précision étendue [ par JesusQuintana ] Bonjours, Je veux programmer en C un ensemble complet de fonctions pour additionner, multiplier des nombres en précision étendue. Les no Marche pas : Changer la résolution de l'écran [ par yserver ] Bojours.La réponse sera a prioris toute bête. Je pose qd même mon code qui à passer pour un idiot, mais faut bien avancer.Donc le pb c'est cette fonct Truc de fou : Pointeurs qui ne comprennent pas les cases vides [ par toddis ] Bonjour,Voilà je suis en train de faire un driver modbus et pour cela j'ai crée une fonction qui calcule le lrc ( controle de validité du message).Le


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales