gpt4 book ai didi

c - 为什么我可以设置一个大于我用 malloc() 保留的字符数组?

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

为什么打印出“test”?:

    char *str;
str = (char *)malloc(1);
str[0] = 't';
str[1] = 'e';
str[2] = 's';
str[3] = 't';

我正在尝试动态扩展一个字符串并试图了解 malloc/realloc 的工作原理,上述行为让我感到困惑,因为 malloc()/realloc() 对于扩展 char* 是可取的。

提前致谢。

最佳答案

未定义的行为意味着任何事情都可能发生。包括看起来“工作”,什么都没有,或者是段错误。您的示例代码确实很糟糕,但 C 标准不保证它会做任何“有用”的事情,也不保证在编译时或运行时一定会发生任何“坏”的事情。

关于c - 为什么我可以设置一个大于我用 malloc() 保留的字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369814/

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