Problem Description
Ignatius is so lucky that he met a Martian yesterday. But he didn't know the language the Martians use. The Martian gives him a history book of Mars and a dictionary when it leave...
分类:
其他好文 时间:
2014-07-23 22:33:38
阅读次数:
281
第十一章 动态内存分配
数组在声明的时候,本身作为一个指针常量,它在编译时候内存就已经被分配好了。但是有时候程序不知道这个数组到底有多长,所以,为了防止内存的浪费,C提供了动态内存分配的策略。
其实,作为独立的一章,本章显得内容不多。malloc,free,calloc,realloc就没有了,但是它包含很多用法,也有很多陷阱。
总结:
malloc和calloc函数都用于动态分配...
分类:
其他好文 时间:
2014-07-21 23:23:53
阅读次数:
265
1、malloc
作用:分配内存块
原型:void *malloc(size_t size);size表示要分配的字节数
返回值:返回一个指向所分配空间的void指针,如果没有足够的内存可用,则返回NULL。
如果要返回一个指向特定类型的指针,则在返回值上用一个类型转换。例如:
char* p;
p=(char*)malloc(20)...
分类:
其他好文 时间:
2014-07-21 11:26:05
阅读次数:
189
直接上代码 struct People{
int age;
}
int main(){
struct People * p= malloc(sizeof(struct Perople));
p->age=10;
struct People * p1=p;
p-age=12;
printf("%d\n",p1->age);
free(p);
return 0;
}
} 函...
分类:
编程语言 时间:
2014-07-21 10:22:57
阅读次数:
222
一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是全然一致的。)功能:分配长度为num_bytes字节的内存块说明:假设分配成功则返回指向被分配内.....
分类:
其他好文 时间:
2014-07-21 08:35:50
阅读次数:
244
在静态存储区:内存的分配在程序执行前就分配好了,在程序运行的过程中一直存在,如全局变量,和static声明的变量。 在栈中:内存的分配是在程序的运行过程中被分配,函数结束后系统自动释放。 在堆中:即动态分配,一般用malloc和new分配内存的大小,程序员自己用free和delete自己释 放, 因...
分类:
编程语言 时间:
2014-07-20 22:04:42
阅读次数:
215
1.不要直接调用mallocvoid *malloc(unsigned int num_bytes);malloc函数的工作机制malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,...
分类:
其他好文 时间:
2014-07-18 15:04:11
阅读次数:
162
TCMalloc是什么?TCMalloc(Thread-CachingMalloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是google-perftools工具中的一个(gperftools四个工具分别是:TCMalloc、heap-checker、heap-profiler和cpu-profiler),这..
分类:
数据库 时间:
2014-07-17 15:34:03
阅读次数:
421
简单的说: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