我有多少数据的结构体在它:长阵列的大结构:更喜欢堆或堆栈分配?
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。 –