由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - Valgrind报uninitialized value was created by a heap allocation
相关主题
question on mem managementany good open source memory pool for C
Char x[] = "abc"; 是在heap还是stack上? (转载)也说说谭浩强(转载) (转载)
perl 高手看过来问一下C语言编CGI的路径问题 (转载)
大家都用什么Profiler? (转载)哎,新手怎么学linux呀
kao ,数组越界Linux里如何用C查看某个程序已经运行?
看看这个 C 代码awk
谁用过google的tcmalloc啊, 还有futex和spinlocks那个好===编程带给IT硅工的9条坏习惯=== (转载)
问一个跟 memory (process address space) 的有关的问题Lisp gone....
相关话题的讨论汇总
话题: adj话题: 25663话题: valgrind话题: allocation
进入Linux版参与讨论
1 (共1页)
o****i
发帖数: 1706
1
程序运行正常,可是在测memery leak的时候报上面那个错,具体错误消息如下:
==25663== Conditional jump or move depends on uninitialised value(s)
==25663== at 0x400C9F: add_edge (graph.c:59)
==25663== by 0x40071A: main (main.c:13)
==25663== Uninitialised value was created by a heap allocation
==25663== at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==25663== by 0x400A80: add_vertex (graph.c:22)
==25663== by 0x400DF8: add_edge (graph.c:84)
==25663== by 0x40071A: main (main.c:13)
我的程序用链接表构建一个无向图来解决TSP的.
graph.c:22
for(adj_v=(*vp)->adj_list; adj_v->next!=NULL; adj_v=adj_v->next);
adj_v->next = (adj_vertex_t *)malloc(sizeof(adj_vertex_t));
adj_v=adj_v->next;
adj_v->edge_weight=weight;
我这个该怎么初始化新alloc的memery space呢?因为我马上要加新的节点信息到这个
地方了,看起来应该没问题啊?C语言不太好,请大牛指教
S*A
发帖数: 7142
2
有两个问题。
1)你刚刚 malloc 的 pointer 没有检查是不是 NULL.
后面就直接赋值了。 segfault if out of memory
2) malloc 出来的 memory, ptr->next 没有赋值。
ptr->next = NULL; 应该就可以了。

【在 o****i 的大作中提到】
: 程序运行正常,可是在测memery leak的时候报上面那个错,具体错误消息如下:
: ==25663== Conditional jump or move depends on uninitialised value(s)
: ==25663== at 0x400C9F: add_edge (graph.c:59)
: ==25663== by 0x40071A: main (main.c:13)
: ==25663== Uninitialised value was created by a heap allocation
: ==25663== at 0x4A0515D: malloc (vg_replace_malloc.c:195)
: ==25663== by 0x400A80: add_vertex (graph.c:22)
: ==25663== by 0x400DF8: add_edge (graph.c:84)
: ==25663== by 0x40071A: main (main.c:13)
: 我的程序用链接表构建一个无向图来解决TSP的.

1 (共1页)
进入Linux版参与讨论
相关主题
Lisp gone....kao ,数组越界
架设一个象MITBBS一样的网站? (转载)看看这个 C 代码
为什么linux是portable?谁用过google的tcmalloc啊, 还有futex和spinlocks那个好
ubuntu 8.10对video memory要求很高吗?问一个跟 memory (process address space) 的有关的问题
question on mem managementany good open source memory pool for C
Char x[] = "abc"; 是在heap还是stack上? (转载)也说说谭浩强(转载) (转载)
perl 高手看过来问一下C语言编CGI的路径问题 (转载)
大家都用什么Profiler? (转载)哎,新手怎么学linux呀
相关话题的讨论汇总
话题: adj话题: 25663话题: valgrind话题: allocation