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.一个是有效字符长度,一个是所占内存空间,是由些细微区别的