Quellcode durchsuchen

[update] 使用memheap内存管理时,rt_malloc 0长度返回RT_NULL, 与slab与小内存管理等算法保持一致。

zhouji vor 4 Jahren
Ursprung
Commit
3327ffaa15
1 geänderte Dateien mit 4 neuen und 0 gelöschten Zeilen
  1. 4 0
      src/memheap.c

+ 4 - 0
src/memheap.c

@@ -850,6 +850,10 @@ void *rt_malloc(rt_size_t size)
 {
 {
     void *ptr;
     void *ptr;
 
 
+    /* zero size, return RT_NULL */
+    if (size == 0)
+        return RT_NULL;
+
     /* try to allocate in system heap */
     /* try to allocate in system heap */
     ptr = rt_memheap_alloc(&_heap, size);
     ptr = rt_memheap_alloc(&_heap, size);
 #ifdef RT_USING_MEMHEAP_AUTO_BINDING
 #ifdef RT_USING_MEMHEAP_AUTO_BINDING