mimmya
mimmya
采纳率0%
2016-10-14 07:03 阅读 3.3k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-10-14 07:32

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

    点赞 1 评论 复制链接分享
  • oyljerry oyljerry 2016-10-14 07:51

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

    点赞 评论 复制链接分享
  • ssm0903030627 ssm0903030627 2016-10-14 09:09

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

    点赞 评论 复制链接分享
  • hijack00 hijack00 2016-10-15 09:12

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

    点赞 评论 复制链接分享

相关推荐