Bonjour,
Est t'il propre d'utiliser la fonction new ou malloc et puis utiliser free ou delete
du même pointer allouer à partir d'un thread différent ?
Merci
Bonjour,
Est t'il propre d'utiliser la fonction new ou malloc et puis utiliser free ou delete
du même pointer allouer à partir d'un thread différent ?
Merci
Sans entrer dans les détails malloc(); et free();, c'est en C. new et delete c'est en C++.
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Bonjour,
Ce que dis gérald3d est important : si tu programmes en C, tu dois te cantonner à malloc() et free() exclusivement. Si tu programmes en C++, tu ne devrais utiliser que new et delete, même s'il est techniquement possible d'appeler les fonctions C.
Ensuite, tu peux effectivement allouer une zone mémoire depuis un thread et la libérer depuis un autre, à conditions que ceux-ci partagent le même espace mémoire (ce qui n'est pas toujours le cas). En pratique, si les deux threads peuvent exploiter les données pointées par un même pointeur sans erreur, tu dois pouvoir libérer l'espace de la même façon.
Par contre, évidemment, tu ne peux libérer avec free() un espace alloué avec new ni, avec delete(), un espace alloué avec malloc(). Ce sont deux jeux de fonctions distincts.
Avec pthread par défaut les threads partagent le même espace mémoire mais tu peux ajouter des options (cf man)
http://man.developpez.com/man3/pthre..._init.3thr.php
Partager