几个重点强调一下:
(1)注意使用assert;
(2)strcat 和 strcpy最后注意赋值'\0';
(3)strcpy注意内存覆盖的情况;
(4)strcmp中:while(!(ret = *(unsigned char *)s1 - *(unsigned char *)s2) && *s2 != '\0');???为什么要转换类 型;
(5)...
分类:
其他好文 时间:
2015-08-27 15:15:57
阅读次数:
144
int _tmain(int argc, _TCHAR* argv[]){ char string1[3] = "aaa"; //一般来说很多IDE都会报错,但有的不会 //实际上,const char[6] 的值是不能用于初始化char[5]的实体的 char string2[3] = "b...
分类:
其他好文 时间:
2015-08-27 07:04:22
阅读次数:
118
内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 本文主要从内存分配与回收,固定内存分区与动态内存分区,以及内存覆盖与交换着几个方面来讲述内存管理知识。...
分类:
其他好文 时间:
2015-07-24 12:49:16
阅读次数:
90
已知strcpy函数的原型是:
char *strcpy(char *dst, const char *src);
实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现
1.strcpy的实现代码
char * strcpy(char *dst,const char *src) //[1]
{
...
分类:
其他好文 时间:
2015-06-17 15:20:03
阅读次数:
120
1、返回局部变量地址将引起内存错误
2、临时空间过大:操作系统在加载某个应用程序时,都将为其分配一定大小的栈空间,若申请过大的局部变量,可能会引起栈溢出问题。
3、src 和 dst 内存覆盖:在进行字节内存复制时,常会出现这一问题。因为部分系统库函数并没有提供内存覆盖的检测功能,从而导致错误。
如下即是源内存区和目的内存区覆盖的示例:
#include
#inc...
分类:
其他好文 时间:
2014-07-27 11:26:02
阅读次数:
185
bug逃不掉最终还是的你来解决,前几天遇到一个死机bug,刚开始感觉很奇怪,因为这代码我之前用的好好的,把它封装成库利用回调调用就死机了。怀疑局部变量调用完后释放了,于是加了个static,呵呵、、、正好不死了,但是后来看了看代码跟局部变量没有关系,但是找了找找不到原因后面就放弃了。但事情就是巧了,...
分类:
其他好文 时间:
2014-07-08 11:48:07
阅读次数:
238