码迷,mamicode.com
首页 > 编程语言 > 详细

C语言内存分配问题简单理解

时间:2016-08-18 00:45:08      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

内存分配方式有几种?
静态存储区 栈 堆 的内存分配
1,从静态存储区域分配内存。程序编译的时候内存已经分配好了,并且在程序的整个运行期间都存在,例如全局变量。
2,在栈上创建。在执行函数时,函数内局部变量的存储单元可以在栈上创建,函数结束时这些存储单元自动被释放。
处理器的指定集中有关于栈内存的分配运算,因此效率比较高,但是分配的内存容量有限。
3,在堆上分配内存,亦称动态内存分配,程序在运行的时候用malloc函数或new运算符申请任意大小的内存,程序员
要用free函数或delete运算符释放内存。动态内存使用非常灵活,但问题也很多。

 1 //main.c  
 2 int a = 0; //全局初始化区  
 3 char *p1; //全局未初始化区  
 4   
 5 main()  
 6 {  
 7     static int c =0//全局(静态)初始化区  
 8     int b; //
 9     char s[] = "abc"; //
10     char *p2; //
11     char *p3 = "123456"; //"123456\0"在常量区,p3在栈上。  
12     p1 = (char *)malloc(10);  
13     p2 = (char *)malloc(20); //分配得来得10和20字节的区域就在堆区。  
14 } 

 

C语言内存分配问题简单理解

标签:

原文地址:http://www.cnblogs.com/oulton/p/5782394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!