c++ 如何删除一个分配了new的类对象,然后使用相同的指针变量来创建另一个新的类对象?[closed]

k5hmc34c  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(138)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
21小时前关门了。
Improve this question
如果我有一个指针指向一个分配了new的对象类,例如:
myClass* ptr = new myClass();
我想把ptr改成一个新的类对象,我该怎么做?
我试着这样做:

delete ptr;
ptr = new myClass();

但是当我试图访问ptr变量时,它会导致崩溃,但是我想确保我没有将它指向一个新对象,从而导致内存泄漏。

8nuwlpux

8nuwlpux1#

我很少(如果有的话)重新分配单个堆分配的对象。但它是这样做的:

// Allocate a new myClass instance and let x point at that instance
  myClass* x = new myClass();

  // Replace the data pointed at by x to be a new myClass instance
  *x = myClass();

  // At this point, x points at the same piece of memory
  // but the data stored at that memory is different.

  // Call the destructor of myClass and free the memory
  delete x;

相关问题