我试图使用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应该如何工作的例子,我相信我已经把它设置好了。
我尝试过使用较小的值来更新大小,比如50,但这并没有解决问题。
我试过把排版去掉,但也没用。
我正在Keil IDE中开发stm32F4微控制器。有什么见解吗?
最佳答案
这是因为调试器不知道数组的实际长度。从调试器的角度来看,arraystuffs
只是一个指针。这就是为什么它只显示一个元素。
您显示的代码没有任何错误,因此如果您的程序没有按预期运行,问题就出在其他地方。