Bonjour,
J'ai un programme en C++ sous linux qui utilise une librairie dynamique. Après le chargement de ma librairie j'appelle une fonction d'initialisation qui crée des objets et les ajoute à un conteneur de mon application principale. Ces objets de type AA dérivent d'une classe de mon appli A.
A <- AA
Application :
conteneur.add(new A());
Librairie :
conteneur.add(new AA());
Lorsque je vide mon conteneur et que je supprime mes objets de type AA j'ai un segmentation fault. Après quelques recherches sur le net j'ai trouvé cet article qu'il faut passer par des fonctions create_object et destroy_object pour allouer ou supprimer des objets d'une shared library.
Ma question est de savoir pourquoi il faut passer par ces fonctions? Comment fonctionne exactement l'allocation/desallocation d'objets et l'appel de fonctions dans une shared library?
Partager