动态内存分配
来源:互联网 发布:数据库订单管理系统 编辑:程序博客网 时间:2024/06/06 01:59
什么是系统内存?
答:物理状况是:内存条.
1.栈区—系统自动分配空间即回收空间,——函数体内定义的变量(局部变量)存放在栈区,当出了它所属的函数,系统就把空间回收.
如:在main函数里面定义int a=10;//a存放在栈区,10放在常量区,把常量区的10拷贝一份,放在栈区,即a(10).
栈区存放的是局部变量.
2.堆区—重点:动态内存分布———由用户分配和回收,如果程序员未回收.那么系统内存就会越来越少 ,当内存不够用的时候,程序崩溃.如果没有达到内存的最大值,程序不会崩溃,程序退出时,系统把空间回收.
3.静态区(全局区:存放全局变量的内存空间,),————定义在函数体外面的变量,由系统开辟空间,程序运行过程中一直存在,知道程序退出,由系统回收.
如:属性就是存放在静态区
4.常量区-用于存放常量的内存区域
如10,25,’a’,”helleo”
5.代码区://存放代码编译结果的区域.
我们写的代码是源代码,电脑不识别,需要编译,编译成二进制,二进制存放在代码区.
堆区的内存分配:-----------------------------------重点
malloc分配指定大小的内存空间,但是不会把分配的空间清0
//malloc
void * p=malloc(10);//即向系统申请10个内存空间,返回首地址,p指向这个首地址
//以上就是开辟内存空间,malloc分配指定大小的内存空间,但是不会把分配的空间清0
free(p);//释放内存空间
char * str=malloc(8);
strcpy(str,”iphone”);
pritf(%s,str);
free(str);
?表示以前是什么,还是什么
free为标记删除:不清除内容,只是归还空间(例子:归还房子)
relese:释放内存
例二:
int *p=malloc(4);
*p=30; //这里的*是取值
pritf:(“%d”,*p);
free(p);
0 0
- 动态内存分配
- 关于动态内存分配
- 关于动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- C++ 动态内存分配
- VC动态内存分配
- 动态数组分配内存
- C++动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配
- 动态内存分配+链表
- 动态内存分配函数
- Hello World 程序的起源与历史
- C语言函数指针基础
- hdu5534 Partial Tree
- java.nio.ByteBuffer用法小结
- hdu 2504
- 动态内存分配
- ajax调用时,需要添加
- java 类加载过程
- COCLASS和class,组件类和控件的介绍
- 从Java转学IOS第一天
- jQuery官方教程之频繁被问的问题汇总
- Java异常处理总结
- linux访问window系统的共享目录
- 第一个DLL程序:动态链接库DLL教程,30分钟快速上手