计算机内存的分配区域:
栈:系统栈和函数栈 栈是会放满的
堆:堆的空间要比栈大得多,由用户自己申请,由用户自己释放,寿命由用户自己决定。当指向的内存被释放掉以后,指针依然指着,但是内存已经没了。
在函数里使用malloc时,也能返回创建的局部变量。
在fun2()函数里malloc申请分配内存后,即使在main()里面free()也是没用的,free()仅仅释放了这个指针,并没有释放函数里的内存空间。
静态全局区:.bss:未初始化的全局和静态变量 .data:已经初始化的全局变量
静态变量和全局变量
全局变量:被所有的文件可见,生命周期是当程序结束时被销毁。
静态变量:static:
当修饰局部变量:在函数结束时不会被系统回收,只在程序结束时被销毁。只初始化一次。
当修饰全局变量:只对本文可见。
文字常量区:字符串常量 常量的特点:不可被修改
代码段