动态内存分配的补充 realloc和calloc函数
malloc calloc realloc 都是<stdilb.h>头文件的函数
函数原型:
void *malloc(unsigned int num_bytes)
void *calloc(size_t n, size_t size)
void realloc(void *ptr, size_t new_Size)
先说malloc和calloc区别
malloc分配的空间里都是垃圾值,而calloc里全是0
但是malloc的效率比calloc的高
# include <stdio.h>
# include <malloc.h>
int main()
{
int* p;
int* pp;
p = (int*)malloc(10 * sizeof(int));
pp = (int*)calloc(10 ,sizeof(int));
printf("malloc的存储空间:\n");
for (int i = 0; i < 10; i++)
{
printf("%d ", *(p+i));
}
printf("\n");
printf("calloc的存储空间:\n");
for (int i = 0; i < 10; i++)
{
printf("%d ", *(pp+i));
}
printf("\n");
return 0;
}
而realloc函数区别很大,它是对已经进行动态内存分配的空间进行扩容
https://www.cnblogs.com/guojingdeyuan/p/9033411.html 国静德远的帖子 写的非常好 realloc直接看他的会很明白