1。
void main(void)
{
int *ptr1;
ptr1 = (int *)malloc(..);
}
2。
void main(void)
{
static int *ptr2;
ptr2 = (int *)malloc(..);
}
我想问一下如何为ptr1和ptr2进行内存分配?
最佳答案
ptr1
指针本身在堆栈上分配。 ptr1
指向堆上的内存。ptr2
指针本身是在程序启动时分配的(在调用main
之前),并且是全局的,但是恰好仅在main
中可见,因为它是在其作用域中声明的。 ptr2
也指向堆上的内存。
在ptr2
之外声明main
只会使它在其下面的所有函数中可见,但其存储将是相同的。