devxlogo

Static Memory or Heap?

Static Memory or Heap?

Question:
When I creating a class, I declare several large arrays, and some integers within one ofof class function members.Within main, I call new, making the object declared on the heap. Are the arrays and interges also delcared on the heap?

Answer:
It depends on how you declared these variables inside the member function. If they are local automatic, i.e., stack allocated, they are still allocated on the stack, regardless of the object’s storage type. For example:

class C{public: void func();};void C::func(){ int ar[100]; // always on the stack}C * pc = new C; // ar allocated on the stack

On the other hand, if you allocate these variables using new, they are always allocated on the heap, even if you object is allocated on the stack:

void C::func(){ int *p new int[100]; // always on the heap}C ac; // p allocated on the heap

In other words, it doesn’t matter how you allocate your object; what matters is how you create the variables within the member function.

See also  How College Students Can Shape the Future of Tech Responsibility
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist