taille dans les alentours de 94630752242960

taille dans les alentours de 94630752242960

by 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

by 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

by 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

by 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

by 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.
In reply to Rémi Claude Delacourt

Re: taille dans les alentours de 94630752242960

by Benedek Hauer -
Je vois! Merci beaucoup pour ta réponse!