> Tous les forums > Forum Autres langages
 Malloc et FreeSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
RandD
  Posté le 25/05/2009 @ 19:07 
Aller en bas de la page 
Petit astucien

Bonjour, je code mes programmes en C et je voudrais savoir à qu'elle moment il faut free un espace mémoire alloué au cours de mon programme, je le fait souvent vers la fin ou aprés avoir envoyé l'élément mallocé à une autre fonction, mais j'ai des problèmes d'invalid free() avec valgrind et le comportement de mon programme change bizarement.

A+

Publicité
Draleg
 Posté le 26/05/2009 à 00:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir, personnellement en cours(qui date lol... doonc ) la désalocation se faisait lorsque la variable n'etait plus utilisée.

Mais apres avoir désalloué ton pointeur, tu le met bien à NULL ?

a_parisfr
 Posté le 26/05/2009 à 21:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Pour ma part je fait le 'free' en fin de procedure mais en testant toujours mon buffer au cas ou.

if (buffer <> NULL) then free() ; endif

RandD
 Posté le 26/05/2009 à 22:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

En gros je dois free ma variable alloué et lui affecter la valeur NULL ?, je comprends pas trop...

comme sa :

char *buffer;

buffer = malloc(sizeof(char *) * 100);

/*Usage du buffer*/

buffer = NULL;

Je comprend pas l'utilité de remettre mon buffer à NULL.

A+



Modifié par RandD le 26/05/2009 22:47
a_parisfr
 Posté le 27/05/2009 à 08:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

RandD a écrit :

En gros je dois free ma variable alloué et lui affecter la valeur NULL ?, je comprends pas trop...

comme sa :

char *buffer=NULL;

buffer = malloc(sizeof(char *) * 100);

if (buffer == NULL) then .... endif /* si alloc à echouer */

/*Usage du buffer*/

buffer = NULL;

if (buffer <> NULL) then

free(buffer) ;

endif

l'instruction free met en principe buffer à NULL

Je comprend pas l'utilité de remettre mon buffer à NULL.

A+

RandD
 Posté le 27/05/2009 à 16:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour tes precisions a ce sujet.

A+



Modifié par RandD le 27/05/2009 16:28
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
349,99 €Casque réalité virtuelle Oculus Rift S à 349,99 €
Valable jusqu'au 19 Janvier

Amazon fait une promotion sur le casque de réalité virtuelle Oculus Rift S avec ses 2 manettes Oculus Touch à 349,99 € alors qu'on le trouve ailleurs à partir de 449 €. La livraison est gratuite. L'Oculus Rift S est un casque de Réalité Virtuelle pour PC qui vous permettra de tirer parti du meilleur de votre machine en matière de VR. Ce casque VR pour PC est le plus perfectionné conçu par Oculus. Plus ergonomique et plus performant, il est aussi plus confortable et plus efficace que ses prédécesseurs. L'immersion est parfaite, le rendu spectaculaire, les images éclatantes et bluffantes de réalisme. Sensations fortes garanties !


> Voir l'offre
89,99 €Kit de démarrage Ordinateur Raspberry Pi 4 Type B 4 Go à 89,99 € (via coupon)
Valable jusqu'au 19 Janvier

Amazon fait une vente flash sur un kit de démarrage Raspberry Pi 4 Type B 4 Go qui passe à 89,99 € via un coupon de réduction de 20 € à appliquer sur la page du produit. On le trouve ailleurs à partir de 120 €. Pour rappel, la nouvelle version de ce mini ordinateur dispose d'un processeur ARM Quad Core à 1.5 GHz, de 4 Go  de mémoire, d'un lecteur de carte microSD, de 4 ports USB (dont 2 USB 3.0), Ethernet et HDMI. Il intègre le WiFi et le Bluetooth. Il permet l'exécution de Windows 10, Linux, le décodage de flux Blu-Ray en 1080p ainsi que l'émulation d'anciennes consoles de jeux. Si vous voulez bidouiller et explorer la programmation informatique, le Raspberry Pi est une excellente base ! C'est aussi une bonne solution pour se créer un système domotique avec Domoticz et Jeedom, Media Center avec OpenElec et Kodi ou un système de jeux retro avec Recallbox ou RetroPie.

Ce kit de démarrage comporte en plus du Raspberry Pi 4 : une alimentation française 3 A avec interrupteurun boîtier et une carte mémoire 32 Go préchargée avec la distribution NOOBS, un lecteur de carte mémoire, des dissipateurs thermiques, un ventilateur et un câble HDMI. La livraison est gratuite. 


> Voir l'offre
29,99 €Carte Ziyituod AX200 PCIe WIFI 6 + Bluetooth 5.1 avec dissipateur à 29,99 €
Valable jusqu'au 18 Janvier

Amazon fait une promotion sur la carte Ziyituod AX200 PCIe WiFi 6 + Bluetooth 5.1 avec dissipateur thermique à 29,99 €. Cette carte réseau à brancher sur un port PCI-Express de votre carte mère vous permettra d'accéder rapidement à un réseau double bande 2,4 GHz/5 GHz et de vous offrir des débits jusqu'à 2974 Mbp/s grâce à ses 2 antennes à haut gain détachables et ajustables et à sa puce Intel AX200. Elle vous permettra également d'ajouter le Bluetooth 5.0 à votre ordinateur pour connecter des périphériques sans fil (souris, clavier, enceintes, manette, ...)


> Voir l'offre

Sujets relatifs
[C] Pb utilisation de malloc (débutant)
malloc plante
malloc, realloc
Compilateur C free pour creation dll
 > Tous les forums > Forum Autres langages