Dynamically allocated memory storage clarification
This question already has an answer here:
I thought I'd make this an answer:
Very simple:
If you use "new", the memory will be allocated from the heap.
"p" is a local variable. It's a pointer, and it's stored on the stack.
The 10,000 ints it points to were allocated by "new"; they're stored in the heap.
int* p = new int[100000];
Will always allocate memory from the heap (correct term is dynamic storage). That's implied using new
or new[]
.
Only the pointer variable itself will get static storage allocation outside of main()
, local storage inside respectively.
上一篇: 在c中的主函数中初始化的变量存储在哪里?
下一篇: 动态分配内存存储说明