gpt4 book ai didi

c - 为什么我不能使用指针加法而不是 malloc

转载 作者:太空狗 更新时间:2023-10-29 15:54:13 25 4
gpt4 key购买 nike

我想知道为什么我必须使用malloc来动态创建内存,而我已经有了可以自由操纵内存的指针加法。所以我创建了这段代码,但是这段代码损坏了,说“变量‘a’周围的堆栈已损坏”

有人可以解释为什么这段代码会失败吗?

#include <stdio.h>

int main(void)
{
int a = 1;
int * arr1 = &a;
*(arr1 + 1) = 2;
printf("%d %d\n", *arr1, *(arr1+1));
}

最佳答案

您不知道在 &a + 1 处存储的是什么实现。它可能是维持操作环境健全所需的关键信息。尽管不知道它可能用于什么,您还是对其进行了修改。所以任何事情都有可能发生。

不要写不属于你的内存!

关于c - 为什么我不能使用指针加法而不是 malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44339684/

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