malloc calloc realloc
1
calloc(), malloc(), realloc(), free()
2
3
4
void *calloc(size_t nobj, size_t size);
5
分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;
6
若内存不够,则返回NULL. 该空间的初始化大小为0字节.
7
char *p = (char *) calloc(100, sizeof(char));
8
9
10
11
void *malloc(size_t size);
12
分配足够的内存给大小为size的对象, 并返回指向所分配区域的第一个字节的指针;
13
若内存不够,则返回NULL. 不对分配的空间进行初始化.
14
char *p = (char *) malloc(sizeof(char));
15
16
17
void *realloc(void *p, size_t size);
18
将p所指向的对象的大小改为size个字节.
19
如果新分配的内存比原内存大, 那么原内存的内容保持不变, 增加的空间不进行初始化.
20
如果新分配的内存比原内存小, 那么新内存保持原内存的内容, 增加的空间不进行初始化.
21
返回指向新分配空间的指针; 若内存不够,则返回NULL, 原p指向的内存区不变.
22
char *p,*q;
23
p = (char *) malloc(sizeof(char));
24
q= (char *) realloc(p, 256);
25
if (q==NULL)
26
return -1;
27
p=q;
28
29
30
31
32
33
void free(void *p);
34
释放p所指向的内存空间; 当p为NULL时, 不起作用.
35
p必先调用calloc, malloc或realloc.
36
free(p);
37
calloc(), malloc(), realloc(), free() 2

3

4
void *calloc(size_t nobj, size_t size);5
分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;6
若内存不够,则返回NULL. 该空间的初始化大小为0字节.7
char *p = (char *) calloc(100, sizeof(char));8

9
10

11
void *malloc(size_t size);12
分配足够的内存给大小为size的对象, 并返回指向所分配区域的第一个字节的指针;13
若内存不够,则返回NULL. 不对分配的空间进行初始化.14
char *p = (char *) malloc(sizeof(char));15

16

17
void *realloc(void *p, size_t size);18
将p所指向的对象的大小改为size个字节. 19
如果新分配的内存比原内存大, 那么原内存的内容保持不变, 增加的空间不进行初始化.20
如果新分配的内存比原内存小, 那么新内存保持原内存的内容, 增加的空间不进行初始化.21
返回指向新分配空间的指针; 若内存不够,则返回NULL, 原p指向的内存区不变.22
char *p,*q; 23
p = (char *) malloc(sizeof(char)); 24
q= (char *) realloc(p, 256); 25
if (q==NULL) 26
return -1; 27
p=q; 28

29
30

31
32

33
void free(void *p);34
释放p所指向的内存空间; 当p为NULL时, 不起作用.35
p必先调用calloc, malloc或realloc.36
free(p);37



浙公网安备 33010602011771号