Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.Martin_C++_Destructor_Dynamic Memory Allocation - Fatal编程技术网

C++ ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.Martin

C++ ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.Martin,c++,destructor,dynamic-memory-allocation,C++,Destructor,Dynamic Memory Allocation,ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.MartinhoFernandes…也有线程本地存储!)我编辑了答案,它现在是否更好地反映了现代术语?很好的答案--我发现这个主题非常有效,首先指出[自动]指针将被销毁,在继续讨论[dynamic]间接对象的语义之前。有了埃里克的更正,这个答案是完美的。@


ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.MartinhoFernandes…也有线程本地存储!)我编辑了答案,它现在是否更好地反映了现代术语?很好的答案--我发现这个主题非常有效,首先指出[自动]指针将被销毁,在继续讨论[dynamic]间接对象的语义之前。有了埃里克的更正,这个答案是完美的。@LightnessRacesinOrbit:看一看,我又做了一次编辑。技术上更准确,但我认为你失去了简洁性。
int main() {
    Foo *leedle = new Foo();

    return 0;
}

class Foo {
private:
    somePointer* bar;

public:
    Foo();
    ~Foo();
};

Foo::~Foo() {
    delete bar;
}
int main() {
    Foo *leedle = new Foo();
    return 0;
}
Foo* leedle = new Foo();
void DoIt()
{
  Foo* leedle = new leedle;
}
void DoIt()
{
  Foo* leedle = new leedle;
  delete leedle;
}
void DoIt()
{
  std::auto_ptr <Foo> leedle (new Foo);
}
void DoIt()
{
  std::unique_ptr <Foo> leedle = std::make_unique <Foo> ();
}
void Foo()
{
  bool b = true;
  {
    int n = 42;
  } // LINE 1
  double d = 3.14;
} // LINE 2
void DoIt()
{
  Foo* leedle = new leedle;
}