摘要: 个人总结在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用—— 就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助! 如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知识等),我感觉这篇文章应该是比较全面地谈了一下malloc()和free().这篇文章由浅入深(不见得有多深)分三个部分介绍 阅读全文
posted @ 2012-11-16 20:37 losesea 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 程序交回控制给操作系统之前C运行库必须进行清理工作,其中一部分是刷新输出缓冲,但是此时main函数已经运行完毕,buf缓冲区作用域在main函数中,此时buf字符数组已经释放,导致输出诡异乱码。 阅读全文
posted @ 2012-11-16 12:22 losesea 阅读(4818) 评论(0) 推荐(1) 编辑
摘要: 大家都知道:int*p; p=NULL; 是说明p为一个空指针。NULL在"stdio.h"中被宏定义为0(或其他什么常数〈视编译器而定〉),而这样又并不是说p指向的地址为0,这时p究竟指在哪儿呢?空指针指向你进程私有地址的0地址,,它不会被分配出去,,主要的不是null指在哪,而是如果指向null,我们的代码就可以用if(ptr)来判断它是不是有效的指针。不过,如果这个指针不是指向0,也有可能不是个有效的指针,,所以建议程序员在定义指针时把它初始化为0 阅读全文
posted @ 2012-11-16 07:43 losesea 阅读(25191) 评论(0) 推荐(0) 编辑