Поскольку вы говорите о том, где в памяти находятся вещи и объекты, я думаю, вы имеете в виду C ++.Если это не так, как сказал Мэтт, это может помочь уточнить ваш вопрос, чтобы кто-то, кто знает о языке, который вы используете, мог ответить:).
В C ++, находится ли массив элементов внутриПамять объекта или отдельно в куче зависит от того, как объявлен массив: статические массивы-члены будут размещаться внутри объекта, в то время как динамические массивы-члены будут существовать в новой динамической памяти.
Если вы объявитестатически массив:
class MyStaticArrayClass
{
int myArray[10];
// ...
};
Если вы объявите объект MyStaticArrayClass, массив будет находиться внутри самого объекта MyStaticArrayClass.То есть, если вы объявляете свой объект в стеке:
MyStaticArrayClass myObject;
Содержимое myArray также будет в стеке, а если вы объявляете свой объект в куче:
MyStaticArrayClass * myObjectPtr = new MyStaticArrayClass;
Тогда содержимое myArray будет в куче, но внутри памяти, на которую указывает myObjectPtr (деструктор по умолчанию для MyStaticArrayClass позаботится об освобождении этой памяти для вас при вызове delete myObjectPtr;).
Если вы объявляете массив динамически:
class MyDynamicArrayClass
{
int * myArray;
// constructor initializes to myArray = new int[10];
// ...
};
Если вы объявляете объект MyDynamicArrayClass, массив будет находиться в куче, вне самого объекта MyDynamicArrayClass.(Вам нужно написать собственный деструктор для вызова delete [] myArray).