c语言是如何检测到数组越界的 5

比如说strcpy(char*,constchar*)函数,下面写就是错误的:charstr1[2];charstr2[]="abcd";strcpy(str1,str2... 比如说 strcpy(char*,const char*)函数,
下面写就是错误的:
char str1[2];
char str2 [] = "abcd";
strcpy(str1,str2);
因为str1的长度为2 ,小于5,所以上面的函数就报错了,
那么我的疑问是,strcpy接受的是一个char的指针,c语言是如何知道str1的长度的呢?
请大神指教
展开
 我来答
安全大师2013
2020-02-05 · 超过24用户采纳过TA的回答
知道答主
回答量:92
采纳率:64%
帮助的人:15.2万
展开全部

每个字符串都会以"\0"结束,指针读取后移的过程中,用一个变量计数,读到"\0"结束,不就知道了字符串的长度了吗?上个示例代码:

代码区

qjqjqjb
2014-09-28 · TA获得超过110个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:72.7万
展开全部
你不是已经定义字符串str1的的长度是2了吗,那长度是四的字符串str2怎么可能复制到str中,明显越界了啊
追问
是明显越界了,我是问底层,是怎么判断的,str1已经退化成指针了,是没有长度的,所以如何判断越界的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式