component_create() avec un composant déjà initialisé

component_create() avec un composant déjà initialisé

by Jonas Blanc -
Number of replies: 2

Bonjour,

Devons-nous gérer le cas où le composant passé est déjà initialisé (ie. c->mem->memory possède un champ en mémoire) afin d'éviter des fuites de mémoire en réassignant le pointeur ?

Merci,

Jonas

In reply to Jonas Blanc

Re: component_create() avec un composant déjà initialisé

by Jean-Cédric Chappelier -

c'est une bonne question en ce sens que ce genre de comportement n'est pas explicitement demandé (in fine, c'est toujours le programmeur appelant qui est responsable (pourquoi appeler « create » sur un composant déjà créé ?) ; un peu comme c'est le programmeur C qui est responsable de ne pas faire :

int* p = malloc(...);
p = malloc(...);

), mais on peut aussi chercher à se prémunir contre les mauvaises utilisation des fonctions que l'on fournit (= programmation défensive).
En clair : ce n'est pas demandé, mais ça peut faire sens et ce n'est pas contraire ni à l'esprit général ni aux consignes. Donc, puisque vous y avez pensé, vous pouvez le faire (en le commentant + référence à cette réponse).

In reply to Jean-Cédric Chappelier

Re: component_create() avec un composant déjà initialisé

by Jonas Blanc -

D'accord, merci pour réponse !