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

五行代码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 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站