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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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

Merci pour vos réponses