苏州市建设局安监站网站,长尾关键词是什么,会员管理系统软件哪个好,建站之星模板下载网站文章目录 malloc函数calloc函数malloc函数和calloc函数的不同free函数realloc函数 malloc函数 参数是要开辟内存空间的大小 开辟成功则返回值为开辟空间的首地址#xff0c;若开辟失败则返回一个空指针NULL
calloc函数 第一个参数为开辟空间的元素个数#xff0c;第二个参数… 文章目录 malloc函数calloc函数malloc函数和calloc函数的不同free函数realloc函数 malloc函数 参数是要开辟内存空间的大小 开辟成功则返回值为开辟空间的首地址若开辟失败则返回一个空指针NULL
calloc函数 第一个参数为开辟空间的元素个数第二个参数为每个元素的大小 开辟成功返回值为开辟空间的首地址开辟失败返回值为空指针NULL
malloc函数和calloc函数的不同
除了参数不同外开辟后的结果也是不同的malloc开辟好的空间不会被赋值calloc开辟好的空间会被赋值
#include stdio.h
#include stdlib.h
#include assert.hint main()
{int* ptr1 (int*)malloc(10 * sizeof(int));assert(ptr1);int* ptr2 (int*)calloc(10, 4);assert(ptr2);free(ptr1);free(ptr2);ptr1 NULL;ptr2 NULL;return 0;
}free函数 参数为一个指针指向的是用malloccallocrealloc函数开辟的空间的如果不是动态开辟空间结果不确定标准没有定义。
realloc函数 第一个参数为已经动态申请好的空间地址第二个参数为重新开辟空间的大小不是再增加这么大的空间大小而是总共开辟这么大的空间大小。
#include stdio.h
#include stdlib.h
#include assert.hint main()
{int* ptr1 (int*)malloc(20);assert(ptr1);int* ptr2 (int*)realloc(ptr1,40);assert(ptr2);free(ptr2);ptr2 NULL;return 0;
}**注意**使用realloc函数时要用另一个指针来接收如ptr2。因为有可能在这个地址后的内存空间大小不能满足需要扩容的空间大小所以有可能重新开辟的空间起始地址与第一次开辟的起始地址不一致。 如果扩容失败则返回空指针NULL