更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
malloc.c 文件参考

浏览源代码.

函数

voidcalloc (size_t nitems, size_t size)
 
void free (void *ptr)
 释放ptr所指向的内存空间 更多...
 
voidmalloc (size_t size)
 动态分配内存块大小 更多...
 
voidzalloc (size_t size)
 
voidmemalign (size_t boundary, size_t size)
 
voidrealloc (void *ptr, size_t size)
 重分配内存 更多...
 

函数说明

◆ calloc()

void * calloc ( size_t  nitems,
size_t  size 
)

在文件 malloc.c42 行定义.

43{ /*lint !e578*/
44 size_t real_size;
45 void *ptr = NULL;
46
47 if (nitems == 0 || size == 0) {
48 return NULL;
49 }
50
51 real_size = (size_t)(nitems * size);
52 ptr = LOS_KernelMalloc((UINT32) real_size);
53 if (ptr != NULL) {
54 (void) memset_s((void *) ptr, real_size, 0, real_size);
55 }
56 return ptr;
57}
UINT64 size_t
Definition: los_typedef.h:80
unsigned int UINT32
Definition: los_typedef.h:57
VOID * LOS_KernelMalloc(UINT32 size)
ARG_NUM_3 ARG_NUM_1 ARG_NUM_2 ARG_NUM_2 ARG_NUM_3 ARG_NUM_1 ARG_NUM_4 ARG_NUM_2 ARG_NUM_2 ARG_NUM_5 ARG_NUM_2 void
函数调用图:
这是这个函数的调用关系图:

◆ free()

void free ( void ptr)

释放ptr所指向的内存空间

在文件 malloc.c66 行定义.

67{
68 if (ptr == NULL) {
69 return;
70 }
71
72 LOS_KernelFree(ptr);
73}
VOID LOS_KernelFree(VOID *ptr)
函数调用图:

◆ malloc()

void * malloc ( size_t  size)

动态分配内存块大小

在文件 malloc.c81 行定义.

82{ /*lint !e31 !e10*/
83 if (size == 0) {
84 return NULL;
85 }
86
87 return LOS_KernelMalloc((UINT32) size);
88}
函数调用图:

◆ memalign()

void * memalign ( size_t  boundary,
size_t  size 
)

在文件 malloc.c112 行定义.

113{
114 if (size == 0) {
115 return NULL;
116 }
117
118 return LOS_KernelMallocAlign((UINT32) size, (UINT32) boundary);
119}
VOID * LOS_KernelMallocAlign(UINT32 size, UINT32 boundary)
函数调用图:
这是这个函数的调用关系图:

◆ realloc()

void * realloc ( void ptr,
size_t  size 
)

重分配内存

在文件 malloc.c141 行定义.

142{
143 if (ptr == NULL) {
144 ptr = malloc(size);
145 return ptr;
146 }
147
148 if (size == 0) {
149 free(ptr);
150 return NULL;
151 }
152
153 return LOS_KernelRealloc(ptr, (UINT32) size);
154}
VOID * LOS_KernelRealloc(VOID *ptr, UINT32 size)
void * malloc(size_t size)
动态分配内存块大小
Definition: malloc.c:81
void free(void *ptr)
释放ptr所指向的内存空间
Definition: malloc.c:66
函数调用图:
这是这个函数的调用关系图:

◆ zalloc()

void * zalloc ( size_t  size)

分配请求的内存并返回指向它的指针。 请求的大小是 size 字节。 内存值是0。 原来 zalloc的含义是 zero malloc

在文件 malloc.c91 行定义.

92{ /*lint !e10*/
93 void *ptr = NULL;
94
95 if (size == 0) {
96 return NULL;
97 }
98
99 ptr = LOS_KernelMalloc((UINT32) size);
100 if (ptr != NULL) {
101 (void) memset_s(ptr, size, 0, size);
102 }
103 return ptr;
104}
函数调用图:
这是这个函数的调用关系图: