免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1306 | 回复: 4
打印 上一主题 下一主题

在aix5L上编译成64位后,运行就coredump了。。。。。? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-24 19:42 |只看该作者 |倒序浏览
操作系统为aix5.2,64位。我的代码很简单(是新手,刚从SCO上转到aix上的),如下:
代码:

  1. #include <stdio.h>;

  2. typedef struct st_node
  3. {
  4.    char name[20];
  5.    char addess[100];
  6. } ST_NODE;

  7. int main(void)
  8. {
  9.    ST_NODE *node1;

  10.    node1 = (ST_NODE *) malloc(sizeof(ST_NODE));
  11.                 printf("step1...\n");
  12.    bzero(node1, sizeof(ST_NODE));
  13.                 printf("step2...\n");

  14.    return 0;
  15. }
  16. [code]

  17. 假设该文件名为t.c,
  18. 1、我用xlc -o t t.c编译后得到t,运行t,输出如下:
  19. step1...
  20. step2...
  21. 一切正常。
  22. 2、我用xlc -q64 -qarch=ppc64 -o t t.c编译后得到t,运行t,输出如下:
  23. step1...
  24. Segmentation fault(coredump)
  25. 很显然程序coredump了。

  26. 问题:
  27. 为什么bzero会coredump呢???但用malloc分配内存是可以的啊。
  28. 请大家帮忙看看。谢谢了。。。
复制代码

论坛徽章:
0
2 [报告]
发表于 2004-05-24 19:57 |只看该作者

在aix5L上编译成64位后,运行就coredump了。。。。。?

include <stdlib.h>;

论坛徽章:
0
3 [报告]
发表于 2004-05-24 20:04 |只看该作者

在aix5L上编译成64位后,运行就coredump了。。。。。?

谢谢了

论坛徽章:
0
4 [报告]
发表于 2004-05-24 20:36 |只看该作者

在aix5L上编译成64位后,运行就coredump了。。。。。?

我现在遇到一个新的问题,在sco上也是可以的,到aix5L后就coredump了。
#include <stdlib.h>;

typedef struct st_node
{
    void *data;
    struct st_node *next, *prev;
} ST_NODE;

int main(void)
{
ST_NODE *node1, *node2;

node1 = (ST_NODE *) malloc(sizeof(ST_NODE));
bzero(node1, sizeof(ST_NODE));
node2 = node1->;next;   //这里coredump,在sco上是没问题的

return 0;
}

论坛徽章:
0
5 [报告]
发表于 2004-05-24 21:24 |只看该作者

在aix5L上编译成64位后,运行就coredump了。。。。。?

应该是下一句吧?
node1->;next=NULL!所以node2=NULL……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP