LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1204|回复: 4

malloc()会导致错误"User defined signal 1"

[复制链接]
发表于 2006-5-17 14:59:33 | 显示全部楼层 |阅读模式
遇到这样一个很奇怪的问题
char *pointer = malloc(256);
程序执行到这句时就挂掉了,错误信息如下:
User defined signal 1
这是什么原因呢?
发表于 2006-5-18 05:42:46 | 显示全部楼层
char *pointer = malloc(256);这句本身就有问题,应该是256*sizeof()吧?
回复 支持 反对

使用道具 举报

发表于 2006-5-18 20:23:09 | 显示全部楼层
这一句没有问题, 当然, 如果考虑到平台的可移植性, 或者是为了体现思维的严密, 那么 malloc(256*sizeof(char)) 当然是更好的

单单这一句代码不会编译出错, 运行也不太可能出错(出错也不太应该是楼主这个错误), 但是如果有上下文环境就不好说了. 楼主应该多帖一些代码
回复 支持 反对

使用道具 举报

发表于 2006-5-18 20:29:53 | 显示全部楼层
在某些平台上,这么分配内存会产生内存对齐错误(当然是在用的时候)。
回复 支持 反对

使用道具 举报

发表于 2006-5-18 20:31:39 | 显示全部楼层
看起来象是被信号中断了.如果是这样,可以打印返回值看看.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表