llinux对内存空间的描述&&malloc的工作原理
2013-12-13 21:27
218 查看
一、
![](https://img-blog.csdn.net/20131213210806859?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGpkX2xvdmVfenp0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
二、实验
1、编写代码
![](https://img-blog.csdn.net/20131213211145250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGpkX2xvdmVfenp0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
解释:
getpid():获取当前进程的PID
2、打开一个新的TERMINAL。依次键入以下命令
cd /proc/${PID}
cat maps
ps aue
ldd 可执行文件名
这时你会看到以下界面:
![](https://img-blog.csdn.net/20131213211746265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGpkX2xvdmVfenp0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
解释:
8048 —— 8049 :代码区
8049后面的 : 全局栈
三、malloc的工作原理
malloc使用一个数据结构(链表)维护分配空间。
这个链表的构成是:分配的空间/上一个空间数据/下一个空间数据/空间的大小
对malloc的分配的空间不要月结访问。因为容易破坏后台的维护结构
四、new和new[]、malloc的区别
![](https://img-blog.csdn.net/20131213212546656?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGpkX2xvdmVfenp0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20131213212601250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGpkX2xvdmVfenp0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
五、定位分配
二、实验
1、编写代码
解释:
getpid():获取当前进程的PID
2、打开一个新的TERMINAL。依次键入以下命令
cd /proc/${PID}
cat maps
ps aue
ldd 可执行文件名
这时你会看到以下界面:
解释:
8048 —— 8049 :代码区
8049后面的 : 全局栈
三、malloc的工作原理
malloc使用一个数据结构(链表)维护分配空间。
这个链表的构成是:分配的空间/上一个空间数据/下一个空间数据/空间的大小
对malloc的分配的空间不要月结访问。因为容易破坏后台的维护结构
四、new和new[]、malloc的区别
五、定位分配
相关文章推荐
- C语言学习7 :二级指针定义,强制转换,多级指针初步,6级指针构造,错误应用*p=&a,错误应用 二级p2,void型指针的兼容性,malloc函数基本用法,malloc分配空间和堆栈空间的区别,验证malloc函数内存的分配,验证malloc函数的越界,内存泄漏,指针不能返回局部变量地址,内存分配
- #define ROUND(x,y) (((x)+(y-1))&~(y-1))申请内存空间时,为了减少内存碎片
- malloc 从哪里得到的内存空间
- 关于malloc与new开辟内存空间
- malloc一次性最大能申请多大内存空间
- malloc之后再进行free,free的内存空间一定被OS回收了吗?(转自知乎)
- iPhone中管理malloc分配的内存空间
- malloc一次性最大能申请多大内存空间
- C动态字符串,动态开辟内存空间相关 malloc realloc 用法
- malloc & 内存碎片 & 细节
- 由于文件不可访问或者内存或磁盘空间不足 所以无法打开数据库"Picture"
- 复杂值vs原始值&&内存空间
- 使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址
- malloc分配的内存空间是连续的吗
- c语言中定义结构体指针并指向一片内存空间和直接定义一个结构体变量的区别 Node *p=(Node *)malloc(sizeof(Node)); 和 Node p 两个有什么区别??? Node是一
- malloc申请内存空间失败
- 为什么链表操作过程中对于结构体指针,都要用malloc来开辟内存空间
- [简记]内核中申请内存和用户空间中申请内存的函数(kmalloc/vmalloc/malloc)对比
- iPhone中管理malloc分配的内存空间