咚了个咚 发表于 2025-5-24 23:00

MALLOC 始终返回 null

使用 Nucleo-F439ZI 和 STM32Cube IDE。中间件LWIP 和 CMSIS_OSv2。调用 malloc 时,返回 null。这部分应用程序所需的总字节数为 161。我的解决方法是声明一个 usigned char str。
RTOS 堆设置为 50000。Project management 选项卡将 Minimum heap 设置为 0x200 并将 minimum stack 设置为 0x400。
实验了只有 5 个字符的 malloc。仍然返回 null。




这是什么原因导致的

powerantone 发表于 2025-5-26 12:45

堆空间不足导致的吧

probedog 发表于 2025-5-26 12:46

建议用静态分配替代动态分配。

tpgf 发表于 2025-5-26 13:38

如果系统可用物理内存和虚拟内存都已被大量占用,无法满足新的内存分配请求,malloc就会返回null

stormwind123 发表于 2025-5-26 16:00

可能是堆内存碎片化导致的。

classroom 发表于 2025-5-26 20:00

检查LWIP 动态内存配置。

duo点 发表于 2025-5-26 21:00

用互斥锁保护 malloc 调用,改用线程安全的内存分配器

jobszheng 发表于 2025-5-26 22:30

需要使用RTOS里面的内存分配API。
页: [1]
查看完整版本: MALLOC 始终返回 null