gpt4 book ai didi

c - 在堆栈上分配数组/指针

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

在堆栈上分配内存的标准程序是什么。我目前正在创建一个临时数组

const uint8_t _buf[buf_size];
const uint8_t* buf = _buf;

我再也没有使用过_buf。我觉得很脏。有没有更好的办法?

编辑:

我需要指针的原因是因为我将它传递给一个递增指针的函数。我不相信这会很好地传递数组。以下是更多详细信息:

const uint8_t _buf[buf_size];
const uint8_t* buf = _buf;
buf_size = fread((void *)buf, 1, buf_size, file);
// f increments the pointer in buf
f(&buf, &buf_size);

最佳答案

您可以使用 compound literal :

uint8_t* buf = (uint8_t[buf_size]){0};

在我的许多程序中,我无论如何都使用两个变量,因为如果它具有可读的名称,则使用调试器跟踪内存会更容易。

关于c - 在堆栈上分配数组/指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58539272/

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