我有多少數據的結構體在它:長陣列的大結構:更喜歡堆或堆棧分配?
struct myStruct
{
char name[128], desc[128];
struct Prm { char p_name[32]; int p_val; } parameter[512];
char Reserved[256];
};
整個結構的尺寸,如圖所示在上述例子中,是18944個字節假定沒有填充;我需要其中的128個,總計2424832個字節,大於2兆字節。
我需要在全局範圍內聲明這個數組,分配它的最好方法是什麼? 我應該做myStruct myData[128];
還是聲明它是一個指針,然後用new[]
然後delete[]
初始化它,當程序退出時呢?或者也許是矢量?
將聲明它爲一個簡單的數組與堆棧混亂?我怎樣才能確定它沒有問題?從列表中
'保留[256];'?有一種類型缺失。注意:你不應該假設沒有添加填充。某些PCS在結構中爲32位數據類型使用64位對齊方式。 – Olaf
是的,忘記輸入。糾正。那雖然沒有回答我的問題。我的例子中沒有添加填充,我只是測試了它。 –
是的,確實有效,我只是問這是否是堆棧的問題,因爲myData的內容會大於2 Mb。 –