关于aix6.1系统内代码函数调用过程中栈数据异常变化的问题。请大家指教,郁闷的要命

qq_33689714 2016-01-09 09:13:14
最近在aix系统上调试代码,版本aix6.1.64位,发现一个很奇怪的现象,比如代码中出现下列调用关系。

int a()
{

struct xx * temp = b();

}

struct xx * b()
{
struct xx *temp = malloc(16);
if(NULL !=temp)
{
return (temp );
}
}

在函数b中,假设申请到的内存数据是:0x0000000110211e50。 这个指针是没问题的,可以赋值,但是等到return以后,在a中指针数据变成了0x0000000010211e50,也就是说,低三十二位没问题,高出32位的第33位的1变成0了,
我自己写了一个简单的app是没问题的,但是调试过程中每次必出,郁闷,有哪位大侠遇到过的?是编译选项的问题么?给点指点吧。多谢
...全文
1796 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,194

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • IBM AIX社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧