C语言基础:内存
2015-06-10 21:59
591 查看
全局变量:定义在函数之外.(不安全) 局部变量;定义在函数之内.
内存的划分:1栈区 2堆区 3静态区(全局区) 4常量区 5代码区
栈区..静态区.常量区.代码区的数据都是由系统分配和释放空间.
堆区的内存必须自己去申请和释放.
1.栈区 栈区的数据以栈的形式存放(先进后出)
局部变量存放在栈区
2.静态区 (全局区)
被static修饰的变量和全局变量存放在静态区
static修饰符的作用:
1.修饰的变存放在静态区
2.修饰的变量只初始化一次
3.由static修饰的变量如果没有初始化,系统默认为0
3.常量区
存放常量,常量区的数据不可以修改
4.代码区
程序中运行的函数和语句都会编译成CPU指令存放在代码区
函数名 就是 函数在代码区的首地址
5.堆区
由开发人员手动申请和手动释放
申请内存函数:
void * malloc(size)
返回值类型 void * 范类型(可以转化为其他任意类型)
//在堆区申请四个字节的空间,返回的是申请空间的首地址
-----------------------------------------------------------------------------------------
calloc(count,size)
calloc会对申请的内存空间先做一个清空操作.返回值也是申请空间的首地址.
-----------------------------------------------------------------------------------------
void reallloc(*p,size)
从指针p的位置开始,重新申请(size)个字节.如果后面有size个连续的字节的话,就直接申请到位,如果不够的话,就先释放之前的内存,重新寻找size个连续的空间,为此,指针发生了重指向.
-----------------------------------------------------------------------------------------
void * malloc(dest,source,n)
从指针source拷贝n字节,拷贝到dest中.
----------------------------------------------------------------------------------------
int memcmp(*p1,*p2,n)
比较p1和p2指向的内存里面的内容是否相同,比较n个字节.如果相同,返回0,不同返回差值.
逐个字节(相对位置)比较,返回第一个差值.
============================================
堆区内存使用之后记得释放
// void free (void *)
// free(p1); //把对应的内存空间,职位 可用空间
// p1=NULL; //把指针 职位 空
内存的划分:1栈区 2堆区 3静态区(全局区) 4常量区 5代码区
栈区..静态区.常量区.代码区的数据都是由系统分配和释放空间.
堆区的内存必须自己去申请和释放.
1.栈区 栈区的数据以栈的形式存放(先进后出)
局部变量存放在栈区
2.静态区 (全局区)
被static修饰的变量和全局变量存放在静态区
static修饰符的作用:
1.修饰的变存放在静态区
2.修饰的变量只初始化一次
3.由static修饰的变量如果没有初始化,系统默认为0
3.常量区
存放常量,常量区的数据不可以修改
4.代码区
程序中运行的函数和语句都会编译成CPU指令存放在代码区
函数名 就是 函数在代码区的首地址
5.堆区
由开发人员手动申请和手动释放
申请内存函数:
void * malloc(size)
返回值类型 void * 范类型(可以转化为其他任意类型)
//在堆区申请四个字节的空间,返回的是申请空间的首地址
-----------------------------------------------------------------------------------------
calloc(count,size)
calloc会对申请的内存空间先做一个清空操作.返回值也是申请空间的首地址.
-----------------------------------------------------------------------------------------
void reallloc(*p,size)
从指针p的位置开始,重新申请(size)个字节.如果后面有size个连续的字节的话,就直接申请到位,如果不够的话,就先释放之前的内存,重新寻找size个连续的空间,为此,指针发生了重指向.
-----------------------------------------------------------------------------------------
void * malloc(dest,source,n)
从指针source拷贝n字节,拷贝到dest中.
----------------------------------------------------------------------------------------
int memcmp(*p1,*p2,n)
比较p1和p2指向的内存里面的内容是否相同,比较n个字节.如果相同,返回0,不同返回差值.
逐个字节(相对位置)比较,返回第一个差值.
============================================
堆区内存使用之后记得释放
// void free (void *)
// free(p1); //把对应的内存空间,职位 可用空间
// p1=NULL; //把指针 职位 空
相关文章推荐
- C语言基础:内存 分类: iOS学习 c语言基础 2015-06-10 21:59 23人阅读 评论(0) 收藏
- C语言基础:函数指针
- C语言基础:函数指针 分类: iOS学习 c语言基础 2015-06-10 21:55 15人阅读 评论(0) 收藏
- Common Algorithms in STL of C++(C++ STL中的常见算法函数)
- C语言基础:指针初级(补充)
- C语言基础:指针初级(补充) 分类: iOS学习 c语言基础 2015-06-10 21:54 19人阅读 评论(0) 收藏
- C语言基础:初级指针
- C语言基础:初级指针 分类: iOS学习 c语言基础 2015-06-10 21:50 30人阅读 评论(0) 收藏
- C语言基础:函数(Function)
- C语言基础:函数(Function) 分类: iOS学习 c语言基础 2015-06-10 21:48 14人阅读 评论(0) 收藏
- C语言基础:结构体
- C语言基础:结构体 分类: iOS学习 c语言基础 2015-06-10 21:47 28人阅读 评论(0) 收藏
- C++基础题目积累
- C语言基础:常见循环语句
- C语言基础:常见循环语句 分类: iOS学习 c语言基础 2015-06-10 21:46 13人阅读 评论(0) 收藏
- zerglurker的c语言教程005——命名规则
- C语言基础:分支语句和常见运算符
- C语言基础:分支语句和常见运算符 分类: iOS学习 c语言基础 2015-06-10 21:44 13人阅读 评论(0) 收藏
- c语言基础:数据类型
- c语言基础:数据类型 分类: iOS学习 c语言基础 2015-06-10 21:43 9人阅读 评论(0) 收藏