关于实现字典数据结构的正确方法的一般问题

时间:2011-05-13 20:01:08

标签: c++ c data-structures

在任何字典数据结构中都有一个add_to_ds函数接收数据 需要插入作为参数。 问题是:如果add_to_ds获取它自己的对象(类型T)并进行内存分配,或者add_to_ds应该获取指向对象的指针并且只需插入指针(类型T *,使用DS的任何人都会进行内存分配)。

做正确的方法是什么,为什么?

1 个答案:

答案 0 :(得分:1)

通常没有任何正确/错误的方法。如果您信任调用者不修改内存,那么您可以存储指针。但是,如果您未在界面中指定此项,则必须复制内存。

  • 如果你让他们输入指针,他们 将负责释放记忆,而不是接触记忆等。
  • 如果你信任他们,你必须释放内存,你必须将副本返回到存储的项目(否则,如果你返回你的指针,他们可能会释放它/改变它)