所以燃

01 2014 档案

程序活动记录&程序调试&多线程编程
摘要:内存空间程序在执行时,传递给CPU的地址是逻辑地址,由段选择符和偏移量组成。逻辑地址必须映射成线性地址,再映射为物理地址才能访问物理内存。a.逻辑地址转化为线性地址:逻辑地址以“段寄存器:偏移地址”形式存在,通过段寄存器里的索引找到段基址,再加上段偏移量,得到线性地址。b.线性地址转化为物理地址:线性地址分为页目录项、页表项和页偏移组成。页目录索引+页目录基址得页表基址,页表基址+页表索引得页基址,页基址+页偏移得物理地址。程序的内存布局为:全局变量区、静态常量数据、代码区、变量、堆、空闲区、栈区。堆:由程序员分配和释放,malloc()/free(),new/delete,内存区域不连续(链 阅读全文

posted @ 2014-01-30 15:35 Jizhiyuan 阅读(258) 评论(0) 推荐(0)

数据结构与算法
摘要:1.1 算法设计步骤a.输入输出,由此确定算法的参数和返回值。b.使用断言,检查输入参数的合法性,防止非法输入。c.考虑边界,全面考虑可能出现的所有情况。d.出错处理,goto error方式。1.2 字符串 1: char* strstr(char* s1,char* s2){ 2: char *p=s1,*r=s2; 3: while(*p!='\0'){ 4: while(*p++==*r++); 5: if(*r=='\0') 6: return p; 7: else{ 8: r=s... 阅读全文

posted @ 2014-01-29 22:04 Jizhiyuan 阅读(364) 评论(0) 推荐(0)

C/C++
摘要:C篇 1.1 指针 指针是一个占四字节的变量,与其他变量的不同就在于它的值是一个内存地址,指向内存的另一个地方。C语言适合底层开发就在于支持指针,能够直接访问内存地址和操作底层的数据,可以通过指针动态分配和释放内存。 1: typedef struct _node{ 2: int value; 3: struct _node *next; 4: }node; 5: node *pnode=NULL... 阅读全文

posted @ 2014-01-23 12:50 Jizhiyuan 阅读(317) 评论(0) 推荐(0)

导航