
只赋值了前10个字节,第17、18字节为什么会变动,异常;
memset后,未赋值时,执行输出全是0,正常;求高手解答

只赋值了前10个字节,第17、18字节为什么会变动,异常;
memset后,未赋值时,执行输出全是0,正常;求高手解答
1)pChar是一个字符型的指针变量,其值为字符(或字串首字符)在内存中的地址,你在
char *pChar=new char[20];
和
pChar="123456.789";
两处赋给了其两个完全不同的地址,所以打印出来的第17、18字节已经不在new出来的20个字节中了。
v 预期第17、18字节位置 v 实际打印位置
+---------------------------------------------------------+
| 0x00|... |'1' '2' ... '9' ... |
+---------------------------------------------------------+
^ new char[20] 得到的地址 ^"123456.789"字串所在地址
2)字符串是不可通过 "char指针变量 = 字符串"的方式赋值的,应该使用strcpy、strncpy等库函数。