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

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/

10-10 00:18
查看更多