字符串在数组中越界储存问题
#include <stdio.h> //abcdefghijklmn14 abcdefg7#include <string.h>
#define M 5
int main()
{
char str1 = {0};
char ch;
int i = 0;
printf("请输入字符串:");
while ((ch = getchar()) != '\n')
{
str1 = ch;
}
str1 = '\0';
// gets("%s", str1);
printf("str1的长度是:%d\n", strlen(str1));
printf("sizeof(str1) = %d\n", sizeof(str1));
printf("str1 = %s\n", str1);
return 0;
}
请问两个图示同样是数组的越界储存,为什么一个可以一个不行?当存入一维数组存入字符个数小于数组容量时,是否需要在字符串末尾手动添加终止符‘\0’? 越界是不被允许的,就没有研究的意义
就如同犯罪一样,我们就不要去研究哪种犯罪方式好,都是要坐牢的 wp231957 发表于 2021-10-6 09:19
越界是不被允许的,就没有研究的意义
就如同犯罪一样,我们就不要去研究哪种犯罪方式好,都是要坐牢的
哈哈,好的
页:
[1]