Structure, union et pointeur
Salut
j'ai un petit problème lors de l'exécution avec valgrind d'un programme.
Voici le code de mon problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
#include "test.h"
#include <stdio.h>
#include <stdlib.h>
int main(){
yah y=c();
printf("%d %d\n",y->test,y->unionT.test2);
}
yah c(){
yah y = (yah)malloc(sizeof(yah));
y->test = 1;
y->unionT.test2 = 2;
return y;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11
|
struct ya_ {
int test;
union {
int test2;
char c;
}unionT;
};
typedef struct ya_ * yah;
yah c(); |
Valgrind me dit que je fais une écriture invalide de la taille de l'int pendant le y->unionT.test2 = 2; et de lecture lors du printf ...
Quand j utilise ma structure sans pointeur, tout fonctionne bien mais je veux absolument les utiliser :cry:
Merci pour vos réponses