Если я объявить переменную какстека и кучи памяти в C++
int a[100]
говорят, что массив 100 элементов, созданных на стеке, и может быть плохой идеей, в зависимости от размера и т.д.
Рассмотрим я определить структуру
struct abc
{
int a[100];
};
и где-то в коде я использую эту структуру как
abc P; //line 1
abc *p = new abc(); //line 2
Теперь массив находится внутри этих двух объектов (один на стеке (строка 1) и один на куче (строка 2)). Где находится внутренний массив?
Благодаря
Какое это имеет значение? Вместо необработанных массивов следует использовать 'std :: vector' или' std :: array'. Также предпочитает автоматическое хранение по динамическому хранилищу. – crashmstr
@crashmstr некоторые рекомендации для локальных компаний C++ для встроенного C++, в частности, запрещают использование многих std-конструкций, а также концепций C++ 1x, и в этом случае вышеупомянутое может быть релевантным. – dfri
@dfri true, но OP ничего не говорит об этих ограничениях, а встроенные и другие специфические потребности платформы обычно находятся за пределами «общих рекомендаций» для идиоматического C++. – crashmstr