我创建的数组具有意外的大小

时间:2017-05-12 10:42:32

标签: c

我尝试创建一个大小为i + 1的临时数,但我发现无论i或size的值是多少,我的代码总是会创建一个大小为6的字符串。这怎么可能发生?

LOCALE_ID

Here is the debugging message

2 个答案:

答案 0 :(得分:1)

strlen检查\0的第一次出现。当您使用未初始化的数组调用strlen时,就像在此处一样:

    char temp[size];
    printf("The value of i is : %d\n", i);
    printf("The value of size is : %d\n", size);
    printf("The copy has the size of: %d\n", strlen(temp));

数组的内容是随机的,并且您的程序具有未定义的行为,因为您不允许使用未初始化的变量。

答案 1 :(得分:0)

strlen()只计算从参数指针开始的非零字节。您似乎无法将temp阵列归零。