C++在函数中创建链表,怎么返回
答案:2 悬赏:80
解决时间 2021-03-06 16:53
- 提问者网友:雨之落き
- 2021-03-06 13:00
函数的参数是一个链表头指针,返回值就是这个处理过的指针。
但是,链表的身体部分都是在函数中创建的,一旦函数执行完毕,这些身体不就被销毁了吗?
如果用new在默认堆上创建,会被销毁吗?如果不会,那用标示符来指定delete呢?身体有关的标示符都是函数里申请的局部变量。
如果用heapalloc在新堆上创建,会被销毁吗?同上,用什么标示符来释放呢??
这些标识符都是在函数里定义的,太多,用全局不合适,有什么好的方法吗?
求具体。
会被销毁吗?
改为:
函数结束后,会被销毁吗?
最佳答案
- 二级知识专家网友:如果这是命
- 2021-03-06 13:58
但是,链表的身体部分都是在函数中创建的,一旦函数执行完毕,这些身体不就被销毁了吗?
每一个结点 都是动态new或malloc出来的,不会被销毁
如果用new在默认堆上创建,会被销毁吗?如果不会,那用标示符来指定delete呢?身体有关的标示符都是函数里申请的局部变量。
结点的地址都被保存在了链表里,所以通过链表遍历,能访问每一个结点 ,一般的形式,p = p->next;这就能把p指向到下一个结点 ,只要正确的把结点地址保存到链表中,创建函数中的那些局部变量被销毁是没有任何影响的
每一个结点 都是动态new或malloc出来的,不会被销毁
如果用new在默认堆上创建,会被销毁吗?如果不会,那用标示符来指定delete呢?身体有关的标示符都是函数里申请的局部变量。
结点的地址都被保存在了链表里,所以通过链表遍历,能访问每一个结点 ,一般的形式,p = p->next;这就能把p指向到下一个结点 ,只要正确的把结点地址保存到链表中,创建函数中的那些局部变量被销毁是没有任何影响的
全部回答
- 1楼网友:专属的偏见
- 2021-03-06 15:12
但是,链表的身体部分都是在函数中创建的,一旦函数执行完毕,这些身体不就被销毁了吗?
如果是临时变量,不是堆内存,是会被销毁的。
如果用new在默认堆上创建,会被销毁吗?如果不会,那用标示符来指定delete呢?身体有关的标示符都是函数里申请的局部变量。
new出来的是不会被销毁的。链表中应该有指针变量指向下一个节点,利用这个指针delete掉new出来的内存。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯