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

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

4个回答

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问