[注]此文是《程序员的自我修养》的读书总结,其中掺杂着一些个人的理解,若有不对,欢迎拍砖。
程序的内存布局
现代的应用程序都运行在一个虚拟内存空间里,在32位的系统里,这个内存空间拥有4GB的寻址能力。现代的应用程序可以直接使用32位的地址进行寻址,整个内存是一个统一的地址空间,用户可以使用一个32位的指针访问任意内存位置。
在进程的不同地址区间上有着不同的地位,...
分类:
其他好文 时间:
2015-05-22 00:34:56
阅读次数:
112
ACE服务端编程系列的第三篇,探究ACE解决不同编译器之间分配堆内存的差异。在ACE的官方示例中会看到大量的ACE_NEW_RETURN,ACE_NEW这样的宏,这是ACE为了消除不同编译器编译的代码在堆上分配内存失败的行为差异。具体来说:使用 malloc/calloc 等分配内存的函数时,一定要...
分类:
其他好文 时间:
2015-05-22 00:33:10
阅读次数:
168
#include#include#define getpch(type)(type*)malloc(sizeof(type))#define NULL 0struct pcb{ //定义进程控制块PCB char name[10]; //进程名 char state; //状...
分类:
系统相关 时间:
2015-05-21 22:32:00
阅读次数:
304
malloc.c:3096: sYSMALLOc: Assertion (old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) ...
分类:
其他好文 时间:
2015-05-21 10:57:00
阅读次数:
516
三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib....
分类:
其他好文 时间:
2015-05-20 14:41:07
阅读次数:
115
malloc
头文件: stdlib.h 或者 malloc.h
memset
头文件: string.h 或memory.h
printf
头文件: stdio.h...
分类:
其他好文 时间:
2015-05-20 09:42:40
阅读次数:
123
/*-----函数指针+出参-----*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char*GetString(char**p)
{
*p=(char*)malloc(11);
strcpy(*p,"helloworld");
return*p;
}
intmain()
{
char*pStr=NULL;
char*pStr2=GetString(&pStr);
printf("-..
分类:
其他好文 时间:
2015-05-19 16:51:24
阅读次数:
116
之前写过几篇自己动手系列的文章,简要实现了栈,二叉堆,malloc等函数,对于垃圾收集器,一直也有所耳闻。像python中主要使用引用计数手段来管理内存,为了解决循环引用的问题,引入了分代收集和标记-清除方式。当然python中可能产生循环引用的只可能是容器类对象如list,dict,class等,而像int,string是不可能产生循环引用的。当然python中的垃圾收集器实现是比较复杂的,我也没...
分类:
其他好文 时间:
2015-05-17 18:45:05
阅读次数:
133