未初始化的全局变量和静态变量在bss段中,已经初始化的全局变量和静态变量在数据段中(DS)
自定义申请的内存空间在堆中 void *malloc(size_t size)
free(p) ; p=NULL; 当指针指向malloc函数的返回值时,用完后要做内存释放和令指针指向NULL,当只有free(p)时还能打印出p指向的这片地址内容,但内容不确定
悬空指针:int *p ; *p=3; 虽然定义了指针变量p,但p指向的地址不确定,即p的指向的地址所属的段不确定
heap 栈
stack 堆
栈:先进后出,
每一段都有栈帧,函数再返回值后就释放栈帧
只有栈才有栈帧
函数结束不代表进程结束
函数内部的局部变量都是函数所是有的
LOCAL 只限本.c文件内部被调用
GLOBLE 除能在本.c文件内部被调用,也能在非本.c文件中调用
在函数前加上static关键字该函数就变成内部函数,该函数只限本.c文件内部被调用,别的.c文件无法调用
printf输出缓冲区的内容是需要在格式控制符中夹\n释放缓存空间
原文地址:http://blog.csdn.net/extendsobject/article/details/38372481