32位向64位 移植 函数返回指针问题

atuchina 2006-06-01 09:25:33
我的函数返回一个结构体指针,如下:
(以前没有做过64位的开发)
struct tt(....);


tt * func(){

tt * bb;

....

return bb;
}

main(){
tt * aa;
aa =func();
...
}
main中的aa 不能获得正确的地址!!!
请问如何解决?网上说是字节截断,确实是,因为aa 的地址少了倒数第9位的值
求高手解惑!!
...全文
272 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
atuchina 2006-06-02
  • 打赏
  • 举报
回复
我做的是比较两表的数据,将数据存到内存的hash表中进行比较,自己写的整套HASH代码,效率奇高,比较数据是1000W级的,电信数据比对,有兴趣的交流
atuchina 2006-06-02
  • 打赏
  • 举报
回复
问题是搞定了,但是不知道为什么!
如果以上代码是在一个C文件中的则不会出问题,否则就有问题,搞不懂,散分了,见者有份
happytang 2006-06-02
  • 打赏
  • 举报
回复
个人觉得可能还是首先看看是不是没有申请空间的问题
同意
还是有错误,那就与代码无关了
jixingzhong 2006-06-02
  • 打赏
  • 举报
回复
tt * func(){
tt * bb;
bb = (tt *)malloc(...); //这样就不会返回栈指针了...
....
return bb;
}
zidane_yubo 2006-06-02
  • 打赏
  • 举报
回复
代码全贴出来
看起来你好像是返回堆栈指针了
xiaoyong_w 2006-06-02
  • 打赏
  • 举报
回复
个人觉得可能还是首先看看是不是没有申请空间的问题
  • 打赏
  • 举报
回复
问题跟你写的代码无关。
atuchina 2006-06-02
  • 打赏
  • 举报
回复
刚刚测试了一下,似乎不是指针返回的问题,郁闷中,
jixingzhong 2006-06-01
  • 打赏
  • 举报
回复
楼上说的问题,
楼主应该解决了吧?

楼主的问题的主题似乎不是这个 ...
jixingzhong 2006-06-01
  • 打赏
  • 举报
回复
那就用 64 位指针类型重新定义吧 ...
Sandy_Y 2006-06-01
  • 打赏
  • 举报
回复
bb 在func中有没有动态申请空间,没有的话可能会返回随机地址。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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