|
#include "stdafx.h"
char * strcat(char * dest, const char * src)
{
char *tmp = dest;
while (*dest)
dest++;
while (*dest++ = *src++);
return tmp;
}
int main(){
char dest[] = { "hello" };
char src[] = { " me" };
strcat(dest, src);
}
dest和src数组长度都是固定的,为什么可以直接在dest后面接上src,但又不用手动给他分配内存?
你定义的时候就已经分配了空间长度由编译器计算,不是说你分配了才会有这个空间,内存是线性一维空间,你覆盖了紧跟着字符数组的内存区,覆盖到了重要数据程序就会崩溃,你可以回头补补基础,
|
上一篇: mfc代码创建图片控件下一篇: 函数用法
|