1.內存分配
void main(void)
{
int *ptr1;
ptr1 = (int *)malloc(..);
}
2.
void main(void)
{
static int *ptr2;
ptr2 = (int *)malloc(..);
}
我想問的是如何分配的內存PTR1 & PTR2做了什麼?
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
也指向堆上的內存。
在main
之外聲明ptr2
只會使其在下面的所有函數中都可見,但其存儲將是相同的。
在C中,不需要指定'malloc'的返回值。另外,'void main(void)'應該至少是'int main(void)'。 – 2011-04-28 07:19:02