c++类的成员变量的存储位置?

比如
class Test{
    int array[len][len];
}
array是存储在堆上还是栈上(是否需要考虑数组的爆栈)?和类的实例化方式有关吗?
阅读 7.4k
4 个回答

Test * test_ptr = new Test(); 分配在堆上
Test test; 在栈上

Test *ptr = new Test;
Test::array在堆上, ptr本身在栈上...

要看类实例化在哪上

都15年了该用c++11了
智能指针更安全

//分配在堆上,多了不会爆栈,当然也不能大的太离谱了
auto test_ptr = shared_ptr<Test>(new Test()); 

//在栈上,多了会爆栈的
Test test; 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏