begin process at 2012 05 29 08:36:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Erreur sur delete[] et pb alocation mémoire


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

Erreur sur delete[] et pb alocation mémoire

jeudi 29 décembre 2005 à 18:08:42 | Erreur sur delete[] et pb alocation mémoire

dan34

Salut,

J'ai un soucis avec le bout de code suivant.
En fait j'ai créé un objet qui contient un tableau de char dont j'alloue dynamiquement la taille en fonction des besoins et lorsque je veux libérer la mémoire ben ça me met une erreur comme quoi le pointeur est invalide et si j'enlève le delete ça fonctionne.
Mais je pense que je dois avoir des allocations mémoires qui ne sont plus pointés et cela risque à terme de me prendre toute la mémoire.

La question c'est est ce que je pense bien ?
Et si vous voyez une erreur dans mon code merci de me l'indiquer

// On créé un nouveau tableau servant de tampon
char *pMantisse = new char [(m_MantisseSize+1+m_MantisseSize/3)];
// On copie les valeurs de l'ancien tableau vers le nouveau
for (int i = 0; i < m_NbrElmt; i++)
   pMantisse[i] = m_pMantisse[i];
// On supprime le tableau dont on n'a plus besoin
delete[] m_pMantisse;  // Ici sa plante
// On recrée le pointeur et on affecte le bon tableau a l'objet
char *m_pMantisse = pMantisse;

jeudi 29 décembre 2005 à 18:17:24 | Re : Erreur sur delete[] et pb alocation mémoire

vecchio56

Administrateur CodeS-SourceS
m_pMantisse a été alloué comment? char *m_pMantisse = pMantisse; // tu crée ici une variable locale m_pMantisse, qui va masquer l'autre Mais oui tu as raison, il faut absolument toujours tout libérer
jeudi 29 décembre 2005 à 19:14:21 | Re : Erreur sur delete[] et pb alocation mémoire

dan34

la variable m_pMantisse est un pointeur de char  et elle a été allouée précédemnent lors de la construction de l'objet par un new.

C'est bien ce que je pensais pour l'alocation mémoire mais j'étais pas sur que le truc ne se débrouille pas tout seul.
jeudi 29 décembre 2005 à 19:35:55 | Re : Erreur sur delete[] et pb alocation mémoire

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
char *m_pMantisse = pMantisse; remplace cela par m_pMantisse = pMantisse; Car sinon le prochaine coup, m_pMantisse ne sera pas bon.
jeudi 29 décembre 2005 à 19:46:15 | Re : Erreur sur delete[] et pb alocation mémoire

dan34

Oui c'est cela qui pose problème en fait

Merci pour l'aide


Cette discussion est classée dans : erreur, tableau, mémoire, delete, pmantisse


Répondre à ce message

Sujets en rapport avec ce message

Mémoire partagée et pointeur [ par darsh99 ] Bonjour,J'essai de faire passer un tableau dynamique, un pointeur donc, d'un programme à un autre, l'adresse est bien passée et les champs non dynamiq erreur "ne peut etre un read" [ par Sade ] Salut a tous le monde.Dans le programme que j'ai develoP, j'utilise le FileMapping pour pouvoir echange des données entre deux programme distinct fonc Problème delete tableau dynamique [ par ttfl ] Bonjour,je suis débutant en c++.Quelqu'un pourrait il me dire pourquoi le programme suivant plante à la dernière instruction (delete [] tableau;) svp Libération mémoire.... [ par Clonk ] Bonjour,Voilà, j'ai une appli qui utilise énormément de mémoire, jai plusieurs listes chainées de plusieurs milliers d'enregistrements, de nombreuses Erreur de mémoire ? [ par larion ] Bonjour,Je viens de réaliser un projet (~2000 lignes) avec C++Builder permettant de gérer des bureaux virtuels.Ce programme utilise une Dll qui est a Désallocation mémoire!!! [ par PunkDude424 ] Mon problème est le suivant:J'avais un semblant de screen saver en Java qui affichais des etoile a chaque temps X et d'une durée Y ....la structure de problème espace mémoire [ par borgeomi ] borgeomibonjouuuuuuur !!!!!encore une question stupide d'un programmeur cobol MVSsous VISUAL C ++ 6J'ai crée une classe Personne du stylePersonne Tab delete copy de pointeur [ par Galmiza ] Salut,J'ai une erreur lors de la libération de mémoire vive:Un exemple vaut bien mieux q'un long discours:BYTE* pByte = new BYTE[n];BYTE* pByteCopy = [C++]Remplissage tableau et suppression ligne... [ par pirana ] Bonjour à tous le monde, merci de prendre le temps de lire ce post. Voila je dois réaliser une interface en C++, qui permet de lire dans un pic 16F88 gestion de la mémoire [ par jc_romeo ] BonjourJe dois manier de grandes quantité de données (plusieurs giga) et pour cela je les charge de manière séquencielle (et donc je dois libérer la m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 1,139 sec (3)

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