Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34346
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-17 19:28
文章分类

全部博文(12)

文章存档

2013年(12)

我的朋友

分类: C/C++

2013-04-18 17:21:33

        最近看了些书,也结合了些程序的编写。有了点收获,自认为重要的总结下来,若有哪个地方写的不对的地方,哪个朋友发现了的话,请您帮忙指出,不胜感激,小弟是新手,呵呵。。。
        如果光看书的话,发现有的也挺简单的,但是当一开始动手写程序时,问题就一大堆的出来。这也许就是大神们所提倡的“要学好编程,只有动手编程,编程再编程”,近来深有体会,当然我必须还没有学会编程。只是有一些体会——动手,别盯着书发呆。
        1、malloc()函数总结,有几点值得注意的地方
            a、检测是否分配成功(要检测返回的制针值是否是空值);
            b、要记得你分配的内存空间的大小,操作时不能越界了;
            c、在free()内存空间时,要注意free的是malloc分配过的空间;
            d、不能访问已经free了的空间;
             e、很重要的一点,不能忘了释放空间(防止内存泄漏)。
        2、linux的地址空间
            text segment(文本段)
            data segment(数据段,初始化为非零的静态分配数据和全局数据存放在数据段)
            BSS(初始化为零的静态分配数据和全局数据存放在BSS)
             heap(堆)动态内存来自于堆,malloc分配的内存就来自于堆
             stack(栈)是分配本地(局部)变量的地方 
            其中heap和stack只有在程序运行时才产生。
        3、宏定义小结
            宏定义在有的时候很像函数,能实现相同的功能,但是这两者在空间和时间上有些区别,因为宏定义每次只是纯粹的代替,如果一个程序中有很多地方都用到这个宏定义时,那么需要好多空间上的需求,而函数却只存在一处,不需再多的空间。但是宏定义速度快,函数速度慢一些。  




阅读(647) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~