首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

strcpy有关问题 急救!

2012-02-16 
strcpy问题 急救!!!.h文件charuser[7]charname[8].cpp文件char*crabcdefg char*cc12345678 strc

strcpy问题 急救!!!
.h文件
char   user[7];
char   name[8];

.cpp文件
char   *cr   =   "abcdefg ";
char   *cc   =   "12345678 ";
strcpy(user,   cr);
strcpy(name,   cc);

为什么弹出效果是:
MessageBox(user);         //   abcdefg12345678
MessageBox(cr);             //   abcdefg
MessageBox(name);         //   12345678
MessageBox(cc);             //   12345678

user后面为什么添加了cc的内容???

[解决办法]
char user[7];
char name[8];

空间预留少1

你的编译器中user和name是连续内存分配了吧/。
[解决办法]
你的 user[7]只能放下abcdefg 还有一个\0放不进去了
所以 user指向的字符串为abcdefg12345678\0

解决办法: 数组定义为

char user[8]; char name[9]
[解决办法]
空间是连续的,字符串没有以\0结束
[解决办法]
我如果char user[7] 改成8的话
那么最后所有字符相加时这个user是占7位还是8位啊??
///////////

你要明白一个这么一回事,strlen(user)=7,sizeof(user)=8.一个是有效字符长度,一个是所占内存空间,是由些细微区别的

热点排行