关于C++中char型数组初始化的问题

如果在C++中定义一个char型数组
比如说char s[20];
然后通过cin>>输入了一个字符串
但是字符串长度并不是20,那么在有效元素之后是什么呢?

有效元素之后一个元素是\0,再之后是随机的内容。

输入的字符串超过s的大小,就会导致越界操作。缓冲区溢出了,访问s的时候就会无法知道什么时候结束。访问到其他地址空间的内容

建议现用memset初始化再使用,防止出现一些奇怪的数据。

cin和c语言的gets或者fgets类似,都会在获取字符串输入后自动在字符串末尾加\0截断。有效输入之后的数据为随机的脏数据。在字符数组使用前可以使用memset进行初始化