proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« 更新 ipcn 加速用的 squid 提一下 log 支持 Referer 和 User-Agent | Main | 搜狗输入法Beta2今日发布 紫光拼音输入法V5 »

June 20, 2006

strcpy 和 内存越界

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2006/06/20/001010.html
http://windtear.net/archives/2006/06/20/001010.html

strcpy 和 内存越界

strcpy 和 内存越界的问题 应该算是超级经典了
发生也很容易: 前面的处理发生异常 以至于没有置空最后的内存

Q 同学英明神武的发现并解决了这个问题
记录一下 两件事:
1. 初始化置空很必要(NULL指针和数组最后一个\0)
2. 可以用 strncpy 防止难以预料的越界

strcpy, strncpy - copy a string

#include <string.h>
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);

const char *mempointer = NULL;
char staticarray[128];
memset(staticarray, 0, sizeof(staticarray));

mempointer = ......

strcpy(staticarray, mempointer);
strncpy(staticarray, mempointer, sizeof(staticarray)-1);
本blog WWW

Posted by windtear at June 20, 2006 11:43 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.