gpt4 book ai didi

c - 为什么这段代码实际上有效?

转载 作者:行者123 更新时间:2023-12-02 09:36:51 25 4
gpt4 key购买 nike

我已经读过一个有点类似的问题( why this code works in C ),但它实际上并没有解释为什么这段代码实际上有效:

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

typedef struct example
{
char length[2];
} STRUCT;

int main (void)
{
STRUCT test;
strcpy(test.length, "********");
puts(test.length);
return 0;
}

我正在使用 CodeBlocks 来编译它,所以我猜它会在我的字符串中分配更多空间来默认存储额外的星号......我真的不知道。也许我只是幸运,但每次我运行它时它都会起作用。

在上面我展示的示例(链接)中,他将 2 个元素放入一个 2 个元素的数组中,这里我使用的空间比字符串可以处理或可以处理的空间多得多。

最佳答案

C 不检查数组边界。正如 Ricky Mutschlechner 在评论中所述,它会导致缓冲区溢出和未定义的行为。

关于c - 为什么这段代码实际上有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917782/

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