求教两个小问题
char* s2 = new char[80];
int i = strlen(s2);
为什么i是96;
char s3[80];
int i = strlen(s3);
为什么i是91;
不能理解,求教!!!!
[解决办法]
strlen是遇到 '\0'就结束,而对于刚new出来的内存,它们里面是什么内容其实是不一定的。
也就是说,你这里i是多少都有可能
[解决办法]
初始化问题。定义了以后没有初始化,其中的内容不确定。strlen的原理就是从指定的地址开始计算,如果字符是'\0'就停止计算,输出计算的值。这样以后就都是0了
char* s2 = new char[80];
memset(s2 ,0 ,80);
int i = strlen(s2);
char s3[80] = {0};
int j = strlen(s3);