Code Bye

数组长度问题

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char string[10];
char* str1 = “mynameis11111”;
strcpy(string,str1);
cout<<sizeof(string)<<endl<<string;
}
为什么string的长度只有10,可是能输出超长度的内容。
结果是:
10
mynameis11111
解决方案

20

string你定义的时候就是10个大小,之所以可以输出超过10个的长度是应为字符串是以\0结尾的,你可以调试一个这个程序,查看一下内存,这样的数组月结很危险的

20

字符串的拼接并不会检查能否越界了,你这样使用,会占用另外的内存,这种做法是十分危险的。(甚至会造成其他数据的丢失)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明数组长度问题