我正在尝试使用 malloc 来动态分配数组。在我使用它之后,我只得到了一个包含一个元素的数组。代码如下:
uint8_t *arraystuffs;
uint16_t update_size;
//at somepoint, update_size get set to 2448
arraystuffs = (uint8_t *) malloc(update_size);
然后我尝试将我认为应该拥有的东西分配给数组。当我查看调试器时,我只有一个 1 元素数组,其中的值为 0x58。之前用过多次malloc,和上面一样,突然就不行了。我在网上仔细检查了几个关于 malloc 应该如何工作的示例,并且我相信我已经正确设置了它。
我曾尝试对 update_size 使用较小的值,例如 50,但这并没有解决问题。
我曾尝试将类型转换取出,但这也无济于事。
我正在 Keil IDE 中开发 stm32F4 MCU。有什么见解吗?