taille dans les alentours de 94630752242960

taille dans les alentours de 94630752242960

par Benedek Hauer,
Number of replies: 5

Bonjour,

Quand on lance le test unit-test-component, on obtient l'erreur: 

"Size of mem is: 94630752242960". (ou quelque chose dans le même ordre de grandeur)

Pourtant, en essayant de débuguer, en affichant la taille de la mémoire (dans plusieurs endroits dans component_create et dans mem_create), on constate qu'elle est toujours à 2 (comme voulu dans unit-test-component). 

Qu'est-ce qui pourrait provoquer cette différence?

Merci d'avance et bonne journée.


In reply to Benedek Hauer

Re: taille dans les alentours de 94630752242960

par Rémi Claude Delacourt,

Bonjour,

Nous avons exactement la même erreur.

Lorsqu'on Print la valeur de size à la fin de la méthode component_create nous obtenons bien 2, tandis que lorsqu'on print cette valeur dans unit-test-component.c  juste après l'appel à la méthode nous obtenons une valuer de s similaire à celle mentionnée plus haut.

Merci pour votre temps.

In reply to Rémi Claude Delacourt

taille dans les alentours de 94630752242960

par Sebastian Velez De Villa,
C’est exactement ça, donc partout sauf à l’extérieur de component_create() la taille est correcte, à quoi cela pourrait-il être dû?
Merci bien.
In reply to Benedek Hauer

Re: taille dans les alentours de 94630752242960

par Cédric Hölzl,

Je vous invite a utiliser un debuggeur avant tout tel valgrind ou gdb par exemple (cf page du site: https://progos.epfl.ch/projet/display.html?file=handouts/gdb.md). Ces derniers pouraient s'avérer utile pour trouver la source de votre problème.

Je vous conseille également de venir a la scéance du mercredi si vous arrivez pas à résoudre le problème d'ici là.

In reply to Benedek Hauer

Re: taille dans les alentours de 94630752242960

par Rémi Claude Delacourt,
Un assistant m'a très bien expliqué où était la source de l'erreur. Pour ma part je n'effectuait pas une allocation dynamique de mon pointeur sur ma memory_t, donc lorsque je le créais il était stocké en mémoire dans la pille et non dans le tas. Par conséquent lorsque je sortais de la fonction component_create, sous les décors mon programme "effaçait" cette mémoire dans la pille, mais mon pointeur de memory_t pointait toujours vers cet endroit (d'où la valeur aléatoire).
Il me fallait allouer dynamiquement mon pointeur de memory_t afin d'avoir le contrôle sur sa durée de vie.