考试网 >> IT认证 >> 等级 >> 四级考试 >> 计算机等级考试四级上机编程修养(下)

计算机等级考试四级上机编程修养(下)

发布时间:2006-06-27 09:59     点击:
分页:上一页  1 2 3 [4] 5 6 7  下一页

  

对于malloc和free的操作有以下规则: 

  

1) 配对使用,有一个malloc,就应该有一个free。(C++中对应为new和delete) 

2) 尽量在同一层上使用,不要像上面那种,malloc在函数中,而free在函数外。最好在同一调用层上使用这两个函数。 

3) malloc分配的内存一定要初始化。free后的指针一定要设置为NULL。注:虽然现在的操作系统(如:UNIX和Win2k/NT)都有进程内存跟踪机制,也就是如果你 

有没有释放的内存,操作系统会帮你释放。但操作系统依然不会释放你程序中所有产生了Memory Leak的内存,所以,最好还是你自己来做这个工作。(有的时候不知不觉就出现Memory Leak了,而且在几百万行的代码中找无异于海底捞针,Rational有一个工具叫Purify,可能很好的帮你检查程序中的Memory Leak) 

9、变量的初始化 

接上一条,变量一定要被初始化再使用。C/C++编译器在这个方面不会像J***A一样帮你初始化,这一切都需要你自己来,如果你使用了没有初始化的变量,结果未知。好的程序员从来都会在使用变量前初始化变量的。如: 

  

    1) 对malloc分配的内存进行memset清零操作。(可以使用calloc分配一块全零的内存) 

    2) 对一些栈上分配的struct或数组进行初始化。(最好也是清零)不过话又说回来了,初始化也会造成系统运行时间有一定的开销,所以,也不要对所有的变量做初始化,这个也没有意义。好的程序员知道哪些变量需要初始化,哪些则不需要。 

如:以下这种情况,则不需要。 

  

        char *pstr;  /* 一个字符串 */ 

        pstr = ( char* ) malloc( 50 ); 

        if ( pstr == NULL ) exit(0); 

        strcpy( pstr, "Hello Wrold" ); 
分页:上一页  1 2 3 [4] 5 6 7  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有