在给定C语言代码中,变量p属于显式堆动态变量还是栈动态变量?
问题解答
先看你给出的代码:
int main() { int *p=new int; return 0; }
首先纠正:这段是C++代码,C语言没有new关键字,C语言中动态分配内存需使用malloc系列函数。
关于变量p的存储类型:
p本身是栈动态变量:它作为main函数的局部变量,在函数调用时被分配到栈内存中,函数执行结束后会被自动释放。p指向的是通过new在堆上分配的内存空间,但这是它指向的内容的存储位置,和p自身的存储类型无关。
内容的提问来源于stack exchange,提问作者gauri
相关产品推荐
相关产品推荐

