我正在使用 C 语言处理字符数组。我在上一步中设置了大小。当我打印出来时,它清楚地显示 num_digits 为 1。 但是当我将其设置为 char 数组的大小以使其成为大小为 num_digits 的 char 数组时,它将数组的大小设置为 6。 在下一步中,当我打印 strlen(number_array) 时,它会打印 6。打印出来我得到带有很多问号的东西。有谁知道为什么会发生这种情况?
int num_digits = get_num_digits(number);
printf("Num digits are %d\n", num_digits);
char number_array[num_digits];
printf("String len of array: %d\n", strlen(number_array));
最佳答案
您需要以 null 终止数组。
char number_array[num_digits + 1];
number_array[num_digits] = '\0';
如果没有这个空终止符,C 就无法知道何时到达数组的末尾。
关于尽管实际上输入了我想要的整数大小,但字符字符串长度未正确初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57484114/