меня структура, состоящие много данных в нем:Длинный массив больших структур: предпочитаете распределение кучи или стека?
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 используют 64-битное выравнивание для 32-битных типов данных в структурах. – Olaf
Да, забыл набрать его. исправленный. что не отвечает на мой вопрос. добавление в моем примере не добавлено, я просто протестировал его. –
Да, действительно, это работает, я просто спрашиваю, является ли это проблемой для стека, поскольку содержание myData будет больше 2 МБ. –