the*_*man 1 c dynamic-allocation
用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)> =(unsigned long)(((__ builtin_offsetof(struct malloc_chunk,fd_nextsize))+((2*(sizeof(size_t))) - 1))~~((2*(sizeof) (size_t))) - 1)))&&((old_top) - > size&0x1)&&((unsigned long)old_end&pagemask)== 0)'失败.
程序接收信号SIGABRT,已中止.__kernel_vsyscall()中的0xb7fe1424
我发现此代码后出现此错误:
problem->y0 = (double *)calloc(n_tot, sizeof(double));
Run Code Online (Sandbox Code Playgroud)
问题是具有double*y0作为成员的结构.
以前在函数中,我这样做
problem = (fem_problem *)calloc(1, sizeof(fem_problem));
Run Code Online (Sandbox Code Playgroud)
我没有得到任何错误问题== NULL.
一些建议?
加:
我已经检查了n_tot的内容,它有正确的号码