【发布时间】:2011-07-29 06:43:55
【问题描述】:
用 gdb 运行我的程序我得到了这个:
fem.o: malloc.c:3096: sysmalloc: 断言`(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (无符号长)((((__builtin_offsetof (结构 malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & 页面掩码) == 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 个空格来格式化您的代码(使用
{}按钮)。提交前预览问题。
标签: c dynamic-allocation