在C ++中正确使用堆栈和堆?

堆栈-函数内部声明的所有变量将占用堆栈中的内存。因此,函数内的任何局部变量都位于堆栈中。

-这是程序的未使用内存,可用于在程序运行时动态分配内存。因此,如果我们希望某些东西的寿命比声明它的函数的寿命更长,则必须在堆上分配它。

示例

int main() {
   int a; //get memory allocated on stack.
   int *ptr=new int[7]; //memory for 7 integers allocated on heap.
}

堆内存中的主要问题是碎片,而堆栈中更容易出现内存不足的问题。内存大小可以在堆中更改,而不能在堆栈中更改。