由於陣列定義在函式體內部,導致棧溢位的情況

2021-08-20 03:21:53 字數 407 閱讀 9256

最近在做清華的一道範圍查詢的題目,由於要求是到500000,所以我就把部分陣列定義在了main函式外面。// #include#include #include//陣列在外面8個0,裡面5個0

using namespace std;

#define maxn 500000

// void aaa(int*a)

// {

// cout《但還是出錯,後來我查詢了一下,原來自己在main函式內部還是定義了兩個含500000個元素的陣列(int型陣列會自動初始化為0,而char陣列不會)。結果就導致棧溢位了。。。

陣列定義在main函式外部,可以有8個0,內部,就只有5個0,所以下次定義的時候,要注意啦,最好定義在外部,如果陣列很大的話!

比較奇特的是,a[-1]=0,看來這系統自動初始化很猛!

用new在函式體內部開闢空間

1.開闢一維陣列可以用外部傳進來的形參 void getdft int a,const int arows,const int acols,float b,float c b newfloat arows acols 總共元素數 c newfloat arows acols 總共元素數 2.開闢二維...

在jQuery定義自己函式

剛才有學習 在jquery定義自己的擴充套件方法函式 現在想練習一下定義自定義函式。經重構之後,還是發現有 冗餘。下圖高亮部分 因此insus.net再想重構它,此次使用自定義函式來實現。寫乙個自定義函式ddlbind obj,data 它有兩個引數,第乙個為物件,第二個為資料。這樣,我們就可以使用...

怎樣定義函式指標陣列

如果乙個指標指向某個函式,那麼它便是函式指標。有時候我們如果需要在乙個迴圈中,每次呼叫不同的函式 這些函式的返回值和引數相同,函式名不同,實現不同 那麼就可以使用函式指標陣列來使 更加簡練和易讀。那麼,怎樣定義函式指標陣列呢?在定義函式指標陣列之前,需要首先知道什麼是函式指標。函式指標的定義形象點來...