Nic*_*ozo 0 c string codeblocks
最近我在我的代码块编程,我做了一个小程序只是为了C的爱好.
char littleString[1]; fflush( stdin ); scanf( "%s", littleString ); printf( "\n%s", littleString);
如果我创建了一个字符串,为什么CodeBlocks允许我保存13个字符?
Som*_*ude 5
C没有边界检查,编写超出数组的范围或动态分配的内存不能被编译器检查.相反,它会导致未定义的行为.
为防止缓冲区溢出,scanf您可以告诉它只读取特定数量的字符,仅此而已.所以告诉它只读一个你使用格式的字符"%1s".
scanf
"%1s"
作为一个小注意事项:请记住,C中的字符串中有一个额外的字符,即终结符(字符'\0').因此,如果您的字符串应包含一个字符,则实际大小必须为两个字符.
'\0'
归档时间:
9 年,12 月 前
查看次数:
144 次
最近记录: