DLL側でこんなコードがあって、

typedef struct _A { int a,b; } A;

A* __declspec(dllexport) __stdcall Create()
{
return malloc(sizeof(A));
}

呼び出し側でこうやると、

main()
{
A* a;
int n = 1;
a = Create();
printf("%d",n); // 変な値になる
}

メモリリークが起きるみたいなんだけどなんで?