![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c++指针输出字符串有乱码
不知道为啥会有乱码,是直接形参和实参都是字符串指针。。传递给函数的是字符串指针。voidtheArray(unsignedchar*a){for(inti=0;i<10;...
不知道为啥会有乱码,是直接形参和实参都是字符串指针。。传递给函数的是字符串指针。
void theArray(unsigned char *a){
for(int i=0;i<10;i++) {
a[i]='a';
}
//a[10]='\0';
}
void main(){
//新建的事物
unsigned char* stc= new unsigned char(10);
theArray(stc);
cout <<stc;
system("pause");
}
如果把这个a[10]='\0';评论去掉就好了。
但是照理说也没有字符越界啊,怎么会出现乱码呢? 展开
void theArray(unsigned char *a){
for(int i=0;i<10;i++) {
a[i]='a';
}
//a[10]='\0';
}
void main(){
//新建的事物
unsigned char* stc= new unsigned char(10);
theArray(stc);
cout <<stc;
system("pause");
}
如果把这个a[10]='\0';评论去掉就好了。
但是照理说也没有字符越界啊,怎么会出现乱码呢? 展开
1个回答
展开全部
cout对字符串输出时,只要找不到'\0'就会一直向后循环,因此字符串最后的结束标记特别重要。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询