字符数组空间分配问题
#include <stdio.h>
#include <string.h>
void main(void)
{
char a [10] ;
printf( "the length of a is %d \n ",strlen(a));
}
输出为15,为什么?
在这种没有初始化的字符数组的时候空间是由系统随机分配么?
[解决办法]
在这种没有初始化的字符数组的时候空间是由系统随机分配么?
==========================================================
是堆栈中上次使用后遗留的内容
[解决办法]
判断长度是从起始地址一直遇到结束符
你没初始化,值是什么都有可能,
[解决办法]
变量初始化问题。变量要赋初值。
[解决办法]
首先 ,你没初始化数组,其中的值不确定。
其次, The strlen() function calculates the length of the string s, not
including the terminating ‘\0’ character.
他计算c字符串的长度。
所以 ,值是什么都可能。
[解决办法]
char a [10] ;//定义字符数组
strlen(a));//计算字符串长度
由于a的不确定,因此输出的长度是任意的,知道遇到 '\0 '