有关栈内存被破坏,栈内存溢出的问题

有关栈内存被破坏,栈内存溢出的问题

1.问题表象:Stack around the variable ‘arr1’ was corrupted,变量arr1周围的 栈内存空间被破坏

Stack around the variable 'arr1' was corrupted,变量arr1周围的栈内存空间被破坏

2.问题分析:这段代码编译可以通过,但是运行出现问题,属于运行时错误。究其原因,字符数组arr1没有显示指定其大小,而是通过字符串直接初始化,数组大小隐式的被规定为6个字节(5个英文字符加上一个 ‘\0’ ),而strcat函数会在字符数组arr1末尾添加上指定的字符序列(包括 ‘\0’ )。此时发生了越界访问数组内存空间的行为。

3.解决办法:通过显示指定数组的大小,保证数组的空间足够大,足以容纳拼接之后的字符串。如图:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值