linux下程序运行到malloc处数次后出错,请教可能的出错原因,谢谢
简单说来就是在做小规模测试的时候仿佛没有问题,但是在大数据集测试时,这个动态分配并且有free操作的结构在malloc处运行了多次,系统给出如下出错信息:
Program received signal SIGSEGV, Segmentation fault.
(gdb) where
#0 0x400b0279 in free () from /lib/tls/libc.so.6
#1 0x400b1dfc in malloc () from /lib/tls/libc.so.6
#2 0x080729f0 in insert_write_entry (p=0xbffbf940, call_list=0x80a8e18, address=268440796, func=2, func_call_time=296999,
now=300325) at profiling.c:439 ------------//该行为下面的malloc语句行
#3 0x0804b694 in sim_main () at mem_profiling.c:129
#4 0x0805b74c in main (argc=4, argv=0xbffffa24, envp=0xbffffa38) at main.c:512
代码如下:
struct p_write_entry_t * cur, * temp;
temp = (struct p_write_entry_t *)malloc(sizeof(struct p_write_entry_t));
说明一下:不存在内存不够的问题;因为以前已经跑通了,现在在优化,内存空间要求上应该不存在问题。
不知道有哪些方面的原因可以这样?请赐教,谢谢:)