weixin_58540049 2022-07-25 10:42 采纳率: 0%
浏览 55

五行代码malloc报错

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

就五行代码,我整不明白了。
在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语言。

  • 写回答

3条回答 默认 最新

  • 浪客 2022-07-25 10:48
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 7月25日

悬赏问题

  • ¥15 神经网络模型一直不能上GPU
  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响