C语言的内存分配方式

C语言中内存分配方式有三种:

  1. 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序运行期间一直存在。例如全局变量,静态变量。
  2. 从栈上分配。在执行函数时,函数内部变量的存储单元都在栈上分配空间,函数执行结束时自动释放这部分空间。
  3. 从堆上分配,也叫做动态内存分配。程序在运行时用malloc或new申请任意多的内存,程序员需要手动free或delete释放内存。

程序运行时的内存空间:

  1. 栈区:由编译器自动分配释放,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。
  2. 堆区:由程序员分配和释放。
  3. 全局区(静态区):存放全局变量、静态数据、常量。程序结束后由操作系统释放空间。
  4. 文字常量区:存储常量字符串。
  5. 程序代码区:存放二进制代码。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部