begin process at 2012 05 30 01:42:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme d'allocation de mémoire dynamique (malloc/free)


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

Probleme d'allocation de mémoire dynamique (malloc/free)

jeudi 4 mars 2004 à 18:29:08 | Probleme d'allocation de mémoire dynamique (malloc/free)

PhantomPowaa

Bonjour,

J'ai un petit probleme avec les fonctions malloc et free dans certains de mes programmes. Apparement le malloc s'effectue correctement, mais au moment de libérer la mémoire avec free, le programme créé une erreur. J'ai esayé en remplaçant malloc et free par GlobalAlloc et GlobalFree, cela ne marche pas non plus sauf dans un cas, si l'on utilise malloc AVEC GlobalFree (mais cette solution ne fonctionne qu'en mode debug, pas en release).
Petite précision, je programme avec Visual C++ NET, et sous windows (Win32 API).
Si quelqu'un à une idée de là d'ou peut provenir l'erreur, ça serait gentil de me répondre parce que je souhaiterais quand meme faire un code propre et sans code qui ne marche qu'à moitié ;)
merci d'avance pour vos réponses et vive le C++/Win32
jeudi 4 mars 2004 à 18:41:45 | Re : Probleme d'allocation de mémoire dynamique (malloc/free)

BruNews

Administrateur CodeS-SourceS
Si tu veux remplacer le 'malloc' devra se faire pour HeapAlloc ou VirtualAlloc, GlobalAlloc est a considerer comme obsolete.

Dans tous les cas, aucune raison que free n'aille pas avec malloc. Verif que tu ne modifies pas le pointeur retourne par malloc, genre ptr++ ou ptr--.

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 4 mars 2004 à 18:44:02 | Re : Probleme d'allocation de mémoire dynamique (malloc/free)

pheno

Salut
tu ne ferais pas un malloc sur une chaine de caracteres??
du style malloc(sizeof(char)*strlen(chaine))
si c est
rajoute +1
malloc(sizeof(char)*strlen(chaine)+1)
car il faut compter \0
si ce n est pas ca
je ne vois pas d ou vient le probleme
@++



Chevalier Pheno Starboard, membre de la Freeman-Corp
vendredi 5 mars 2004 à 13:01:37 | Re : Probleme d'allocation de mémoire dynamique (malloc/free)

PhantomPowaa

Merci pour vos réponses,

je vais essayer avec Virtual et Heap.
Pour ce qui est de la taille passée au malloc, ça ne vient pas de là, j'ai bien vérifié.
De plus j'ai fait quelques tests, et en activant certaines optimisations de VC NET, le programme marche sans probleme en release. En fait j'ai l'impression que ça vient des options du compilateur, faut dire que .NET est assez lourd pour ça, perso je trouve que y en a trop.
C'était bien le temps de VC+ ;) pas de prise de tete avec les options du compilo, avec NET faut d'abord débuguer les options du compilo avant le programme, vive le progres :D

merci encore et a+
mardi 9 mars 2004 à 21:47:49 | Re : Probleme d'allocation de mémoire dynamique (malloc/free)

MetalDwarf


mdr... Si ca vient d un bug du compilateur c est vraiment trop drole. Laisser passer un bug si enorme...Bon d accord peut etre qu il est super particulier, mais en tout cas je fais bien de me contenter de gcc et g++ sous Linux et VC++ 6 sous windows!!
mardi 9 mars 2004 à 22:02:46 | Re : Probleme d'allocation de mémoire dynamique (malloc/free)

BruNews

Administrateur CodeS-SourceS
Quelle idee aussi de compiler autrement qu'en release, jamais vu l'interet de mettre en debug.
VS 2003 est absolument tip top.
Faut comparer asm produit par VC6, fait pitie a cote du recent.

ciao...
BruNews, Admin CS, MVP Visual C++


Cette discussion est classée dans : probleme, mémoire, free, allocation, malloc


Répondre à ce message

Sujets en rapport avec ce message

Question sur l'allocation de mémoire... [ par kod32 ] Salut,j'ai une question concernant l'allocation de mémoire et notamment l'utilisation de la fonction malloc. Cette fonction permet de pointer vers un Pb d'allocation mémoire malloc [ par oz80 ] Bonjour à tous, j'ai un problème d'allocation de mémoire je pense. Je déclare une variable comme ceci : <TBOD Allocation mémoire impossible [ par tzandre ] hello, Je fais du calcul scientifique, j'ai une machine avec 2G de RAM, mon job fait des allocations pour 1,3Gb avant de libérer de la mémoire pour se [ c ] Allocation memoire [ par Titi035 ] Bonjour, Je recherche quel serait le meilleur allocateur mémoire pour mon appli embarquée. J'ai 10 Mo de RAM + flash à gérer dans un décodeur Free() veut pas désallouer.... [ par benlustr ] Bonjour à tous, c'est encore moi Dans une fonction, j'ai deux pointeurs qui s'incrémentent dans une boucle. à la fin de la fonction, je libère les zon Probleme de mémoire, impossible à vider... [ par Guizmo95 ] Bonjour, Voilà mon problème : J'ai le code suivant : char *buffer; sprintf(bu Allocation de mémoire dans une dll ? [ par tintin72 ] Bonjour, Lorsque de la mémoire est allouée par une dll, est ce que cette mémoire doit être également  libérée par la dll ou est ce que l'application h Mémoire dynamique et gestion d'erreur [ par Polack77 ] Bonjours, ma question serais que se passe t'il si je fais un free sur un pointeur non défini (ou défini à 0).     Je posse cette question (qui peut pa Creation fonction malloc [ par LordBob ] Bonjour a tous,voila en cours on est en train de faire un TP sur la gestion de la mémoire et on doit programmer la fonction malloc. Pour la partie thé malloc (ms vc++) [ par DeadlyPredator ] Bonjour,J'ai une fonction:char*  _fastcall strLeft(const char* lpszString, const long nLength) { char* lpszBuffer; lpszBuffer=(char*)malloc(nLength+1)


Nos sponsors


Sondage...

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 : 0,827 sec (4)

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