char a[32]="",b[]="";
gets(a);
gets(b);
puts(strcat(a,b));
为什么a[31]和a[32]结果不一样啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 於黾 2022-11-28 16:26关注
你没给b分配内存空间,越界了,后面输出什么都有可能
这跟31还是32没有关系,你只要改了代码,重新编译,就换了块内存,那么b里原来是什么就不一样了,就有可能刚好赶上后面是0,就结束了
如果后面不是0,字符串就不结束,就会输出很多乱码本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 c++ gmssl sm2验签demo
- ¥15 关于模的完全剩余系(关键词-数学方法)
- ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
- ¥30 模拟电路 logisim
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?