c++ - 动态指针和对象

标签 c++ pointers

我必须写一份申请才能在学校完成作业。为此,我们必须创建一个动态数组。我的问题是:

  1. 如果我创建一个包含动态指针的结构并复制它,内存也会被复制吗?

    例如:

    struct SomePointerStruct
    {
         int* p_array;
    }
    

    如果我复制那个结构会怎样?还有,

  2. 是否需要清理原始指针?

最佳答案

默认情况下,c++ 中的对象是逐字节复制的。这意味着指针将被复制,你将得到两个指向同一个数组的指针。

要解决这个问题,您需要实现一个复制构造函数,并且还应该覆盖operator=。此外,您可能希望在完成后删除此数组,因此还要实现一个析构函数。即“三法则”。

关于c++ - 动态指针和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19709507/

相关文章:

c++ - 从其他函数访问变量 C++

c++ - 通过例程初始化聚合

c++ - 如何使用C++通过鼠标右键移动窗口?

c++ - "surprising"常量初始化因为定义顺序

c++ - 要释放动态数组初始化时程序崩溃

java - 如何在java中访问动态字符串数组的元素?

c++ - 如果我在一个类中有一个静态属性并创建该类的许多新实例

c - 在 C : Is void* a type?

c++ - 双指针问题error passing through functions

c - 结构类型数组,C错误