Keil中定义了一个长度为10的字符串数组,printf出来字符串长度大于10

在Keil下编辑单片机代码,定义了全局变量数组:uint8_tIns_Table[10]={'#'};在main函数中会更新Ins_Table[],某次一直给Ins_Ta... 在Keil下编辑单片机代码,定义了全局变量数组:
uint8_t Ins_Table[10] = {'#'};
在main函数中会更新Ins_Table[],某次一直给Ins_Table[]赋值了20个字符,然后再加上‘\0’,printf打印出来显示的字符串有20个字符,想请问为什么不是显示前面的10个字符,这样越界给数组赋值会造成什么隐患吗?
展开
 我来答
百度网友53a4e24
推荐于2016-07-30 · TA获得超过155个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:71.5万
展开全部
第一个问题:
字符串的打印是需要'\0'结尾的,所以它就一直打印到'\0'。
第二个问题:
越界赋值,就是在未知的区域赋值,可能会改变未知的量,是会有危险的。未知的内存区域还是不要动的好。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式