问题遇到的现象和发生背景
就五行代码,我整不明白了。
在x86环境下,可以打印333,并且正常结束
但是,在x64环境下,代码会崩溃
我的编译器:Visual Studio 2022
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<string.h>
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语言。