c++创建对象有两种比较常见的方式
- Class c;
- Class * c=new Class()
第一种是在栈里面创建,第二种是在堆里面创建,由于栈的空间有限,所以如果你要是在类里面声明了一个很大的数组,就容易导致爆栈,如下:
class Solution
{
public:
int hash[1000000]={0};
int re=0;
void dy(vector<int>& coins,int remain,int num)
{
}
int coinChange(vector<int>& coins, int amount)
{
}
};
```cpp
例子中的hash数组开的太大,所以导致了用第一种形式在栈里面创建对象的时候报错。
解决方式有两种:
- new的形式在堆里面创建。
- 将大数组设置为static,这样该数组就不是在栈区,而是在静态区。