c++代码看不懂
来源:百度知道 编辑:UC知道 时间:2024/09/27 15:33:00
char *p = new char[2];
*p = '\x62'; // b
*(p+1) = '\x61'; // a
cout<<"strlen(p) = "<<strlen(p)<<endl;
为什么打印出来长度是6?
*p = '\x62'; // b
*(p+1) = '\x61'; // a
cout<<"strlen(p) = "<<strlen(p)<<endl;
为什么打印出来长度是6?
应该是个随机数
因为strlen是碰到'\0'的时候返回大小,你这个数组里根本没有这个符号,返回6是正好第7个字符是'\0'
改为
char *p = new char[3];
*p = '\x62'; // b
*(p+1) = '\x61'; // a
*(p+2)='\0';