1.
void main(void)
{
int *ptr1;
ptr1 = (int *)malloc(..);
}
Run Code Online (Sandbox Code Playgroud)
2.
void main(void)
{
static int *ptr2;
ptr2 = (int *)malloc(..);
}
Run Code Online (Sandbox Code Playgroud)
我想问一下ptr1和ptr2的内存分配是怎么做的?
Bla*_*iev 10
该ptr1
指针本身被分配在堆栈中.ptr1
指向堆上的内存.
该ptr2
指针本身是在程序启动时分配的(之前main
被调用),并是全球性的,但恰好是可见只有在main
因为它是在其范围内声明.ptr2
指向堆上的内存.
ptr2
在外面声明main
只会使它在它下面的所有函数中都可见,但它的存储将是相同的.
归档时间: |
|
查看次数: |
1105 次 |
最近记录: |