Chinaunix首页 | 论坛 | 博客
  • 博客访问: 328052
  • 博文数量: 57
  • 博客积分: 146
  • 博客等级: 入伍新兵
  • 技术积分: 769
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-29 14:57
文章分类
文章存档

2014年(39)

2013年(13)

2012年(5)

我的朋友

发布时间:2014-07-28 14:40:09

一.使用异步安全函数在信号处理函数中。错误代码:点击(此处)折叠或打开#include <signal.h>char *foo;void int_handler() {free(foo);_Exit(0);}int main(void) {.........【阅读全文】

阅读(699) | 评论(0) | 转发(0)

发布时间:2014-07-23 10:56:10

一.总是检查这些输入/输出函数的状态并适当地处理错误。错误地检测和处理特定的输入/输出错误可能导致未定义的程序行为。错误代码:点击(此处)折叠或打开char buf[1024];fgets(buf, sizeof(buf), fp);buf[strlen(buf) - 1] = '\0'; /* Overwrite newline */ .........【阅读全文】

阅读(698) | 评论(0) | 转发(0)

发布时间:2014-07-17 15:29:24

一.char *fgets(char *s, int n, FILE *stream);1.fgets函数返回并不一定是读到换行符,因为从stream读到的长度大于n时,数据会被截断只保留n-1个字符加一个'\0'终止符。错误代码:点击(此处)折叠或打开char buf[BUFSIZ + 1];if (fgets(buf, sizeof(buf), fp)) {.........【阅读全文】

阅读(803) | 评论(0) | 转发(0)

发布时间:2014-07-15 10:44:46

一.内存资源被free后,不要对其进行读写操作。当内存被释放,其内容可能会保持不变和可访问。若访问其内容可能发生意想不到的变化,导致意想不到的程序行为。因此,有必要保证内存一旦释放,就不能写入或读取。错误代码:点击(此处)折叠或打开for(p = head; p != NULL; p = p-.........【阅读全文】

阅读(1081) | 评论(0) | 转发(0)

发布时间:2014-07-11 14:18:14

从写代码上看,内存管理包括内存分配、内存读写、内存释放。内存管理设计不当,会导致堆缓冲溢出、悬空指针(指向一块已经删除了的内存的指针)、double free等问题。1.MALLOC和RECALLOC内存分配不会初始化内存数据调用malloc函数成功后,其分配的内存的数据没有初始化,未知数据。calloc函数调用后,新分配的内存空间也.........【阅读全文】

阅读(788) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册