malloc calloc realloc

简介: malloc calloc realloc

/*

realloc的机制:如果比原来分配的内存要大,有两种情况

1、如果原来空间的后面有足够大的空间,那么直接在后面继续开辟内存,返回原来 的地址

2、如果原来空间的后面没有足够大的空间,那么系统会直接分配一个新的空间,这个新空间就是需要的内存空间,将原有空间下的数据拷贝到新空间,并且将原有空间释放,返回新空间的首地址

*/

/*

calloc与malloc的不同

calloc和malloc一样在堆区分配内存,calloc会将分配的内存初始化为0

*/

 

1. #include <stdio.h>
2. /*
3. realloc的机制:如果比原来分配的内存要大,有两种情况
4. 1、如果原来空间的后面有足够大的空间,那么直接在后面继续开辟内存,返回原来 的地址
5. 2、如果原来空间的后面没有足够大的空间,那么系统会直接分配一个新的空间,这个新空间就是需要的内存空间,将原有空间下的数据拷贝到新空间,并且将原有空间释放,返回新空间的首地址
6. */
7. 
8. 
9. /*
10. calloc与malloc的不同
11. calloc和malloc一样在堆区分配内存,calloc会将分配的内存初始化为0
12. */
13. int main(void)
14. {
15.   int * p = malloc(sizeof(int) *10);
16.   int * q = calloc(sizeof(int)* 10);
17.   for (int i = 0; i < 10; i++)
18.   {
19.     printf("%d\n", p[i]);
20.   }
21.   for (int i = 0; i < 10; i++)
22.   {
23.     printf("%d\n", q[i]);
24.   }
25. 
26.   system("pause");
27.   return 0;
28. }
目录
相关文章
|
1月前
|
存储 C语言
malloc
【6月更文挑战第16天】
33 8
|
1月前
|
存储 C语言
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
26 1
|
25天前
|
C语言
【C语言】:动态内存管理函数malloc,calloc,realloc和free的介绍的介绍
【C语言】:动态内存管理函数malloc,calloc,realloc和free的介绍的介绍
25 0
|
22天前
|
程序员 C语言
C语言内存管理:malloc、calloc、realloc与free函数详解
C语言内存管理:malloc、calloc、realloc与free函数详解
17 0
|
1月前
|
缓存 C语言
glibc函数malloc的工作原理
glibc函数malloc的工作原理
16 0
|
2月前
|
存储 安全 编译器
【C语言】动态内存管理 -- -- 深入了解malloc、calloc、realloc、free、柔性数组(万字深入了解)
【C语言】动态内存管理 -- -- 深入了解malloc、calloc、realloc、free、柔性数组(万字深入了解)
22 0
【C语言】动态内存管理 -- -- 深入了解malloc、calloc、realloc、free、柔性数组(万字深入了解)
|
2月前
|
程序员 编译器 C语言
C语言进阶⑰(动态内存管理)四个动态内存函数+动态通讯录+柔性数组_malloc+free(下)
C语言进阶⑰(动态内存管理)四个动态内存函数+动态通讯录+柔性数组_malloc+free
30 0
C语言进阶⑰(动态内存管理)四个动态内存函数+动态通讯录+柔性数组_malloc+free(下)
|
2月前
|
编译器 数据库 C语言
C语言进阶⑰(动态内存管理)四个动态内存函数+动态通讯录+柔性数组_malloc+free(上)
C语言进阶⑰(动态内存管理)四个动态内存函数+动态通讯录+柔性数组_malloc+free
29 0
C语言进阶⑰(动态内存管理)四个动态内存函数+动态通讯录+柔性数组_malloc+free(上)
|
2月前
|
程序员 编译器 C语言
C语言----动态内存分配(malloc calloc relloc free)超全知识点
C语言----动态内存分配(malloc calloc relloc free)超全知识点
28 6
|
1月前
|
C语言
malloc()函数
`malloc()`是C语言中的动态内存分配函数,用于分配指定大小的内存块,并返回一个`void*`类型的指针。要包含`stdlib.h`头文件来使用它。分配的内存大小以字节为单位,成功则返回内存首地址,失败则返回`NULL`。需要注意的是,返回的指针需强制转换为所需类型,并在使用后用`free()`释放内存,避免内存泄漏。切勿在分配区域内移动指针,以防止释放时出现问题。