堆栈分配失败,堆分配成功!可能吗?

Pra*_*bhu 5 c++ stack visual-c++

我有以下片段

Class Sample
{ Obj_Class1 o1;
  Obj_Class2 o2;};
Run Code Online (Sandbox Code Playgroud)

但是大小Obj_Class1Obj_Class2是巨大的,所以编译器显示警告"考虑移动一些空间到堆".我被要求用Ob替换Obj_Class1 o1 Obj_Class1* o1 = new Obj_Class1();但是我觉得没有使用这个更改,因为如果堆栈分配失败,堆分配也会失败.我对么?或者进行此更改是有意义的(除了抑制编译器警告之外).

Mar*_*ers 5

堆栈通常比堆小.它们使用不同的内存位置.堆栈的大小通常约为兆字节(您可以更改它,但要小心)并按每个线程分配.如果需要,堆可以消耗千兆字节.