在堆栈上分配内存的标准过程是什么?我当前正在创建一个临时数组
const uint8_t _buf[buf_size];
const uint8_t* buf = _buf;
我再也不会使用_buf。我很脏有更好的方法吗?
您可以使用alloca
读取alloca
const uint8_t* buf = alloca(buf_size);
基本上,它在堆栈中分配大小字节的空间呼叫者的框架。
而且我并不是说使用alloca
是更标准化的方法,但至少您有机会检查alloca
的返回值。
您可以使用compound literal:
uint8_t* buf = (uint8_t[buf_size]){0};
在我的许多程序中,无论如何我都使用两个变量,因为如果调试器具有可读的名称,则更容易使用调试器跟踪内存。