c++使用char* a=new char[]的问题。。急

y=rand()%10+1;//随机数产生字符串的字母个数char*temp_name=newchar[y];for(inti=0;i<y;++i){intk=(rand... y=rand()%10+1;//随机数产生字符串的字母个数
char* temp_name = new char[y];

for(int i = 0; i < y; ++i)
{
int k=(rand()%26)+97;//利用ascii码放小写字母
temp_name[i] = k;
}

但是他的temp_name打印出来发现存储的是cbjscjbjgt������铪
还有长长的尾巴。。尾巴还有很多莫名的字符

问问要怎么解决呢
展开
 我来答
匿名用户
2014-03-20
展开全部
字符串尾部应该有个'\0'作为字符串结尾标志,所以申请空间应该多申请一个:
char*temp_name=new char[y+1];
在for(){}循环后面,加上temp_name[i]='\0';就行了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式