由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 大家新年好。 请教一个 c interview question
相关主题
再问:关于多维数组的malloc在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)
怎么得到char *分配空间的大小?关于malloc/free和循环
数组分配问题,求教数组定义的时候,分配空间了么?
数组问题请教一个结构体占内存大小的问题
func调用结束时出错这段C++程序有错吗?
size不固定的struct怎么定义呀?如何在数组中存无限量的元素?比较复杂
初学C,对什么该free一直搞不明白请教 C/C++ 指向多维数组的指针的问题
C里面一个被分配了内存的指针如何知道分配了多少?为什么要这样计算数中元素的个数?
相关话题的讨论汇总
话题: mynode话题: func1话题: tmp话题: len话题: 指针
进入Programming版参与讨论
1 (共1页)
w******h
发帖数: 16
1
Func1 用来create 一个指针数组。每个指针指向一个struct node myNode
void Func1 (myNode*** p)
{
// len is a global value
myNode** tmp;
tmp = (myNode**) malloc(sizeof(myNode*) * len);
p = &tmp;
……
for (int i=0; i {
(*p)[i] = (myNode*)malloc(sizeof(myNode));
……
}
}
Func2用来处理这个指针数组和回收memory
void Func2 (void)
{
myNode** p;
Func1 (&p);
for (int i=0; i {
if (p[i])
{
// Handle data
free (p[i]);
}
}
free (p);
}
Questions
d****p
发帖数: 685
2
this is wrong. tmp is an auto var and becomes garbage once Func1 finishes.So
p will be pointing to garbage.
In this case p may happen to have correct value but that will change once
you insert a lot of lines between calling Func1 and dereferencing p.
n*******s
发帖数: 482
3
p = &tmp;
should be
*p = tmp;
w******h
发帖数: 16
4
谢谢楼上俩位的建议。
1 (共1页)
进入Programming版参与讨论
相关主题
为什么要这样计算数中元素的个数?func调用结束时出错
一道很奇怪的面试题size不固定的struct怎么定义呀?
C 里面有办法永久改变一个指针的属性吗?初学C,对什么该free一直搞不明白
C++问题,confusing...C里面一个被分配了内存的指针如何知道分配了多少?
再问:关于多维数组的malloc在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)
怎么得到char *分配空间的大小?关于malloc/free和循环
数组分配问题,求教数组定义的时候,分配空间了么?
数组问题请教一个结构体占内存大小的问题
相关话题的讨论汇总
话题: mynode话题: func1话题: tmp话题: len话题: 指针