动态内存分配的补充 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直接看他的会很明白

posted @ 2019-11-29 11:56  panghushalu  阅读(128)  评论(0编辑  收藏  举报