gpt4 book ai didi

c - 为什么我能够复制比 char 数组中定义的字节更多的字节?

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:12 26 4
gpt4 key购买 nike

<分区>

我有以下代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char buffer[2];
strcpy(buffer, "12345678910");
printf("%s\n", buffer);
return 0;
}

因为我已经定义了大小为 2 的 char 数组,所以我不能放入超过 2 个字符加上 null 终止字符。然而,它能够在没有任何缓冲区溢出或段错误的情况下花费更多。即使我复制字符串 strcpy(buffer, "123456789101298362936129736129369182");,它也能正常工作。当我按下 strcpy(buffer, "1234567891012983629361297361293691823691823869182632918263918"); 时会生成错误。

与其说是实际问题,不如说是理论问题,但我希望它对新手和有经验的程序员都有帮助,因为它讨论了基础知识,并有助于提高编码道德。提前致谢。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com