created by Dejavu
通過不同的構(gòu)造方法我們可以選擇在堆中或棧中建立數(shù)組融欧,
然而當(dāng)數(shù)組過大時往往在棧中的數(shù)組會發(fā)生內(nèi)存溢出仍源,而導(dǎo)致程序奔潰
所以大數(shù)組盡量要建立在堆中
- 堆中數(shù)組的構(gòu)建方法
class Test {
public:
int data;
bool flag;
.....
};
//構(gòu)造類1 棧中分配內(nèi)存盒刚,一般棧的內(nèi)存分配遠(yuǎn)小于堆
//因此這里有很大可能會發(fā)生段錯誤
class Model1 {
private:
Test t[1e10];
public:
Model1() {}
};
//構(gòu)造類2 堆中分配內(nèi)存
//這樣構(gòu)造一般可以避免因類內(nèi)數(shù)組過大導(dǎo)致的段錯誤
class Model2 {
private:
Test *t;
public:
Model2() : t(new Test[1e10]) {}
};
<img src="data:image/jpeg;base64,kVxOOAhwwZL/a5mKlx1MtI/djfPzAGTkWy3vO3L+Di0=" />