简单的说:kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc不保证任何东西(这点是自己猜测的,不一定正确) kmalloc能分配的大小有限,vmalloc和mall...
分类:
其他好文 时间:
2014-07-16 17:42:57
阅读次数:
195
数组是一个什么玩意:
数组和指针我的理解,有相同之处也有不同之处。因有相同之处,因此一些资料上说,数组和指针本质是相同的。因有不同之处,因此也有一些资料上说,数组和指针是不一样的。
相同之处:
数组名字和指针名字都代表了一个地址。
如:int num[10];num是数组名。函数开辟了一个存储十个整数类型的空间,而num是他们的首地址。
int *p;
p=(int *)malloc(...
分类:
其他好文 时间:
2014-07-16 08:14:59
阅读次数:
167
空指针和传参问题1) 段错误。形参改为二级指针即可void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ){char *str = NULL;GetMemory( str );strcpy( str, "hel....
分类:
其他好文 时间:
2014-07-14 10:03:36
阅读次数:
182
本系列以V1.4.1为蓝本。
在此版本中,内存分配分为:普通和内存池两种。
本篇介绍普通的内存分配,所有的函数在文件mem.c(本小结介绍的是L496-L518)。
1. 声明变量
(1) 内存大小变量
mem_size_t ptr, ptr2; 声明两个16位的无符号整型变量。
...
分类:
其他好文 时间:
2014-07-13 16:39:22
阅读次数:
227
1,管理运行阶段内存空间分配malloc()/new;int *pn = new int(存储的类型,内存根据此设定相应存储字节的内存)pn是内存地址(所以 当声明一个变量的指针变量时没初始化,声明后再来初始化则pn 接收的应该是变量在内存中的地址 &VariableName);*pn是存储在内存的...
分类:
其他好文 时间:
2014-07-12 15:14:59
阅读次数:
167
1、C中内存分为四个区 栈:用来存放函数的形参和函数内的局部变量。由编译器分配空间,在函数执行完后由编译器自动释放。 堆:用来存放由动态分配函数(如malloc)分配的空间。是由程序员自己手动分配的,并且必须由程序员使用free释放。如果忘记用free释放,会导致所分配的空间一 直占着不放,...
分类:
编程语言 时间:
2014-07-11 08:53:21
阅读次数:
333
引言:
使用链表实现栈存在“对malloc和free的调用开销昂贵”的缺点,特别是与指针操作的例程相比尤其如此。利用数组实现栈可以避免了指针。但它的缺点是可能存在空间的浪费。
分析描述:
数组栈的结点元素。
#ifndef ERROR
#define ERROR (0)
#endif
#ifndef OK
#define OK (!...
分类:
其他好文 时间:
2014-07-10 17:19:48
阅读次数:
216
1.内存管理架构
Python的内存管理机制都有两套实现:debug模式和release模式
Python内存管理机制的层次结构:
图16-1
第0层是操作系统提供的内存管理接口,如malloc、free
第1层是Python基于第0层操作系统的内存管理接口包装而成的,主要是为了处理与平台相关的内存分配行为。
实现是一组以PyMem_为前缀的函数族
两套接口:函数和宏。
宏,可以避免函数调用的开销,提高效率,但可能与新版本的python产生二进制不兼容,如果用C来编写Python的
扩展模块,使用函数接...
分类:
编程语言 时间:
2014-07-09 13:10:06
阅读次数:
266
代码注释比较详细:
#include
#include
using namespace std;
struct Node{
int data;
Node* next;
};
Node* head = NULL;
bool create() {
head = (Node*)malloc(sizeof(Node));
if(NULL == head) return false;...
分类:
其他好文 时间:
2014-07-08 21:05:05
阅读次数:
238
欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e=56 Dlmalloc是目前一个十分流行的内存分配器,其由Doug Lea从1987年开始编写,到目前为止,最新版本为2.8.3,由于其高效率等特点被广泛的使用...
分类:
移动开发 时间:
2014-07-06 18:25:07
阅读次数:
607