Bonjour,
J'ai écrit une librairie en C++, destinée à être appelée depuis un progiciel. Les types de retours acceptés sont ceux du C : int, short... et le char*.
Plusieurs de mes fonctions sont de type char *. La taille de la chaîne n'étant pas prévisible, je fais donc des new. Mais je ne peux faire appel au delete ni avant le return (le pointeur ne pointe vers rien d'existant) ni après (l'ordre est ignoré par le compilateur).
A chaque appel de la fonction de l'espace est réservé mais non libéré. Je présume que cette action doit être effectuée au niveau du programme appelant. Dans le progiciel un appel de fonction des librairies est traité ainsi :
ma_variable est un objet statique, puis-je lui appliqué un delete ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 type_string_propriétaire ma_variable; ma_variable = appel_ma_fonction(paramètres)
La libération sur l'espace pointé par appel_ma_fonction se fera-t-elle ?
Comment traite-on en général ce problème d'appel de char* dans une librairie ?
Partager