1
void main(void)
{
int *ptr1;
ptr1 = (int *)malloc(..);
}
2
void main(void)
{
static int *ptr2;
ptr2 = (int *)malloc(..);
}
我想问一下ptr1&的内存分配是怎么做的。 PTR2?
答案 0 :(得分:10)
ptr1
指针本身在堆栈上分配。 ptr1
指向堆上的内存。
ptr2
指针本身是在程序启动时分配的(在调用main
之前)并且是全局的,但恰好只在main
中可见,因为它在其范围内声明。 ptr2
也指向堆上的内存。
在ptr2
之外声明main
只会使其在其下方的所有功能中都可见,但其存储空间将相同。