如何在函数返回之前删除指针?

Jar*_*kid 3 c++

如果我们有这样的函数:

int* foo()
{
  int *x;
  x = new int;

  delete x;
  return x;
}
Run Code Online (Sandbox Code Playgroud)

我们需要在函数中返回一个指针,但我们学到的是我们需要在final中删除一个空格.

如果我们先按x上面那样删除,那么x在最后一行返回是否有意义?因为x不再存在了.

但是如果我们x在返回之前没有删除,那么函数就会完成.

我们怎么办?或者我们真的不需要删除在内存中分配的空间?

acr*_*075 8

您确实需要delete在某个阶段使用指针,但这不一定与您所在的函数范围相同new.它可能发生在你的功能之外,我认为这是你想要实现的.

int* foo()
{
  int *x;
  x = new int;
  return x;
}

int *px = foo();
// use px in some way
delete px;
Run Code Online (Sandbox Code Playgroud)