((C ++)我可以将指向在函数中创建的堆数组的指针传递给main而不引起内存泄漏吗?

问题描述 投票:-1回答:1

这里的初学者正在从事一个旨在了解使用C ++进行内存管理的项目...

概述或跳至tl的最下面的段落

我必须在堆上创建一个数组,并以几种不同的方式对其进行操作:总体思路是首先解析csv文件中的数据...对其进行排序的3种不同方式是使用适当的数据创建3个独立的文本文件明显被操纵。

重点是完成所有这些操作而不会导致任何形式的内存泄漏。

我曾想过一种解决方法是,如果我在main和函数内部调用一个parse函数,则会创建该类的x实例的动态分配数组;然后在进行实例化的同时使用while或for循环解析函数范围内的数据,将解析后的值存储在函数中的堆上。...我创建了指向堆数组的指针,这是我返回的数组主要。

tl; dr

我认为函数作用域将结束,并且我在那里创建的本地指针将死亡((有人可以确认这一点)),但是我的dealloc引用仍然是我传递给main的指针,((从逻辑上讲,我不能看看这怎么会导致泄漏,因为可以通过传递的指针访问堆内存)。..我可以稍后在main中删除堆数组,并避免泄漏。

[有人可以帮我澄清这个过程吗,是否正确?如果

,我可以在主电话中呼叫delete[]吗?

class *x = new newclass[50]

调用在我的解析函数中被销毁了?

如果我不在链中,任何人都可以提供一种更好的方法来提出建议,以将引用传递给在没有内存泄漏的情况下创建的范围之外的数组。其他规格:没有智能指针,没有C ++ 11或更高版本。

这是一个项目。 // help

c++ pointers memory-management scope heap-memory
1个回答
0
投票

© www.soinside.com 2019 - 2024. All rights reserved.