gpt4 book ai didi

在没有 malloc 的情况下创建内存缓冲区

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

我在嵌入式系统 (ARM Cortex M3) 上工作,我无法访问任何类型的“标准库”。特别是,我无权访问 malloc

我有一个函数 void doStuff(uint8_t *buffer) 接受指向 512 位缓冲区的指针。我已尝试执行以下操作:

uint8_t buffer[64] = {0};
doStuff((uint8_t *) &buffer));

但我没有得到预期的结果。难道我做错了什么?有什么替代方法吗?

最佳答案

doStuff(buffer) 应该没问题,因为 buffer 已经 uint8_t*

除此之外,在您的示例中,您在 &buffer 之后关闭了太多括号。


如果 buffer 的大小可变,你也应该将大小传递给 doStuff,如果它的大小不变,我也会传递大小以防万一有一天你会改变尺寸。

话虽如此,您应该按照以下方式进行操作:

uint8_t buffer[64] = {0};
int len = 64;
doStuff(buffer, len);

关于在没有 malloc 的情况下创建内存缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224555/

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