运行我的程序使用gdb SIGABORT怪异,我得到这样的:上的malloc /释放calloc调用
fem.o:malloc.c:3096:SYSMALLOC: 断言`(old_top ==(((mbinptr) (((字符*)&((AV) - >仓[((1) - 1)* 2])) - __builtin_offsetof(结构 个malloc_chunk,FD))))& & old_size == 0)|| ((无符号长)(old_size)> = (无符号长整数)((((__ builtin_offsetof (结构个malloc_chunk, fd_nextsize))+((2 *(的sizeof(为size_t))) - 1))&〜(( 2 *(的sizeof(为size_t))) - 1)))& &((old_top) - >大小为0x1 &)& & ((无符号长整数)OLD_END & pagemask)== 0)”失败。
程序接收信号SIGABRT, 中止。 0xb7fe1424在 __kernel_vsyscall()
我发现这个错误这个代码后出现了:
problem->y0 = (double *)calloc(n_tot, sizeof(double));
问题是,其具有双重* Y0作为构件的结构。
以前的功能,我这样做
problem = (fem_problem *)calloc(1, sizeof(fem_problem));
,我没有得到任何错误没有问题== NULL。
一些建议?
地址:
我已经检查n_tot的内容,它有正确数量
请通过缩进4个空格来格式化您的代码(使用'{}'按钮)。在提交之前预览问题。 – kennytm 2011-04-04 15:28:27