五行代码malloc报错

问题遇到的现象和发生背景

就五行代码,我整不明白了。
在x86环境下,可以打印333,并且正常结束
但是,在x64环境下,代码会崩溃
我的编译器:Visual Studio 2022

问题相关代码,请勿粘贴截图

#include
#include

int* Test1()
{
int* src = (int*)malloc(sizeof(int));
*src = 333;
return src;
}

int main()
{

int* ptr = Test1();
printf("%d\n", *ptr);

return 0;

}

我的解答思路和尝试过的方法

在64位环境下,执行了Test1函数后,ptr仿佛六亲不认,成了一个野指针。
但在32位环境下相安无事。

我想要达到的结果

不改变main函数的情况下,让代码打印333并且正常结束。
Test函数必须用动态内存申请空间。
仅使用C语言。

你看看你的编译器参数。
我用gcc 64 和vc2022都正常

应该是引用指针不用时要释放掉吧,试试看。

int main()
{
    int *ptr = Test1();
    printf("%d\n", *ptr);


        free(ptr);

    return 0;
}

代码应该没有问题,你先把报错发出来吧