gpt4 book ai didi

你能在堆栈上定义一个数组并将指针传递给全局变量吗?

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

我在不支持任何内存分配命令的微芯片上编写 C 语言,但它确实喜欢指针(当然)。所以我的问题是:

有没有办法在函数中定义数组,并将指向该数组的指针传回全局变量?

这将是一种无需 malloc、realloc 或 calloc 即可使用动态内存的方法。本质上,堆栈内存在不破坏自身的情况下被传递回全局。我假设特别需要 alloc 命令来确保它不会被破坏,但我想检查一下是否有办法解决这个问题。

最佳答案

  1. 是的,您可以在函数中声明数组。数组的内存将在调用堆栈上 - 但要小心,没有 malloc 通常伴随着一个小堆栈。
  2. 是的,您可以将局部声明的数组的地址赋予全局声明的指针。
  3. 是的,在某些情况下它可以成为动态内存的便捷来源,但无论您是声明本地数组还是调用饱受诟病的 alloca 函数,结果都是一样的。

但是,内存只有在你从数组所在的函数返回之前是安全的,所以你不能把它变成一个 malloc 风格的东西,而只是为你的叫 child 。

关于你能在堆栈上定义一个数组并将指针传递给全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20112108/

26 4 0
文章推荐: C - 数组求和函数不断返回零
文章推荐: css - Zen 子主题 CSS 类混淆
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com