指针被声明为全局或静态,就会在程序启动时被初始化为NULL
。下面是全局和静态指针的例子:
int *globalpi;
void foo() {
static int *staticpi;
...
}
int main() {
...
}
下图说明了内存布局,栈帧被推入栈中,堆用来动态分配内存,堆上面的区域用来存放全局/静态变量。这只是原理图,静态和全局变量一般放在与栈和堆所处的数据段不同的数据段中。
指针被声明为全局或静态,就会在程序启动时被初始化为NULL
。下面是全局和静态指针的例子:
int *globalpi;
void foo() {
static int *staticpi;
...
}
int main() {
...
}
下图说明了内存布局,栈帧被推入栈中,堆用来动态分配内存,堆上面的区域用来存放全局/静态变量。这只是原理图,静态和全局变量一般放在与栈和堆所处的数据段不同的数据段中。