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 次 |
| 最近记录: |