读书人

输出,该怎么解决

发布时间: 2012-03-08 13:30:13 作者: rapoo

输出
int main(void)
{

char src[] = "12345 ";
char dest[] = "123 ";

strcpy(dest,src);
cout < <dest < <endl;
cout < <src < <endl;
return 0;

}
输出结果为什么是12345,5???

[解决办法]
int main(void)
{

char src[] = "12345 ";
char dest[] = "123 ";
printf( "0x%X\n ",src);
printf( "0x%X\n ",dest);
//注意 src的首地址和dest的首地址,dest的首地址在前且与src的首地址相差
4字节(栈内存分配机制)
strcpy(dest,src);
//按字节覆盖,dest从首地址开始被覆盖掉12345,然后src的首地址已经被覆盖成
'4 '了,后面是 '\0 '
cout < <dest < <endl;
cout < <src < <endl;
return 0;

}

读书人网 >C++

热点推荐