Redian新闻
>
问一个C++ delete 节点的问题
avatar
问一个C++ delete 节点的问题# JobHunting - 待字闺中
w*a
1
【 以下文字转载自 WaterWorld 讨论区 】
发信人: woshiniuwa (dabendan), 信区: WaterWorld
标 题: 洛杉矶的女生要小心这两个人
发信站: BBS 未名空间站 (Sat Sep 25 02:22:09 2010, 美东)
我朋友在网上交友认识这个男的。姓徐,35岁。
这个男的自称是在做生意,对我朋友大方,开始看起来也比较老实,所以渐渐的就赢得
了我朋友的信任。
交往一个多月以后,忽然有一个东北的女人给我朋友打电话,说他们现在正在同居,而
且这个男的一直被他包养了好几年,吃的住的都是她的。我朋友觉得奇怪,因为在这个
男的追她的这一个月,他几乎天天都来看我朋友,如果真是同居的男女应该早就发现了
。询问这个男的说是以前的同居女友,不愿意分手,说他们已经没关系了。我朋友开始
犹豫,不知道究竟怎么回事。后来那个女的又打来电话,我朋友就告诉她,如果们他的
关系还没有解决就退出让他们解决好再说,然后那个女的马上说他们已经分手了,还跟
我朋友道歉说是她一时冲动,因为不愿意跟他分开什么的。
我朋友觉得这个事情很奇怪,就想弄清楚是怎么回事,去过那个男的住的
avatar
y*n
2
在C++ 里边,一般都要把new 的 Object 删除掉。 有的链表问题需要加一个helper的
Node ,但是function返回的时候也要用到这个helper的Node ,大家一般什么时候把这
个Node 删除掉,还是和面试的人说一下就行了。
avatar
c*y
3
in this case, caller is responsible for that.

【在 y***n 的大作中提到】
: 在C++ 里边,一般都要把new 的 Object 删除掉。 有的链表问题需要加一个helper的
: Node ,但是function返回的时候也要用到这个helper的Node ,大家一般什么时候把这
: 个Node 删除掉,还是和面试的人说一下就行了。

avatar
w*s
4
想办法在return之前把它delete掉,这个可能是C++麻烦的地方吧,不过一般都能做到
。另外你可以用smart pointer。
avatar
r*n
5
既然这个Node要返回,一般都是返回Node*,就不能删除这个Node,要不然返回的Node*
就是非法的。

【在 y***n 的大作中提到】
: 在C++ 里边,一般都要把new 的 Object 删除掉。 有的链表问题需要加一个helper的
: Node ,但是function返回的时候也要用到这个helper的Node ,大家一般什么时候把这
: 个Node 删除掉,还是和面试的人说一下就行了。

avatar
a*e
6
可以在main函数里delete掉,或者建一个新的function专门delete dynamically
located pointer吧.
如下例
http://www.codeproject.com/Articles/21909/Introduction-to-dynam
template
T **AllocateDynamicArray( int nRows, int nCols)
{
T **dynamicArray;
dynamicArray = new T*[nRows];
for( int i = 0 ; i < nRows ; i++ )
dynamicArray[i] = new T [nCols];
return dynamicArray;
}
template
void FreeDynamicArray(T** dArray)
{
delete [] *dArray;
delete [] dArray;
}
int main()
{
int **my2dArr = AllocateDynamicArray(4,4);
my2dArr[0][0]=5;
my2dArr[2][2]=8;
cout << my2dArr[0][0] << my2dArr[0][1] << endl;
cout << my2dArr[1][1] << my2dArr[2][2]<< endl;

FreeDynamicArray(my2dArr);
return 0;
}
avatar
l*i
7
You can use a Node object that is local to your function, instead of new a
Node from heap.
void f(Node *head)
{
Node dummy; // assume Node has a default constructor
// do something

// on return, dummy will get destructed
}
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。