请问c语言中malloc函数和realloc的区别

如题所述

c语言中malloc函数和realloc函数的区别为:分配不同、释放不同、强制转化不同。

一、分配不同

1、malloc函数:malloc函数对没有分配过的内存块直接进行分配。

2、realloc函数:realloc函数是在已经分配好的内存块重新进行分配。

二、释放不同

1、malloc函数:malloc函数分配好的内存块一般要用free(size_t size)来释放内存块。

2、realloc函数:realloc函数分配好的内存块不需要用free(size_t size)来释放内存块。

三、强制转化不同

1、malloc函数:malloc函数需要强制转化。

2、realloc函数:realloc函数不需要强制转化。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-19
1.malloc(n*sizeof(int)) /* 请求n个连续的、每个长度为整型的空间,若成功返回这些空间的首地址,失败返回0 */
2.realloc(p,sizeof(int)*n) /* 给一个已经分配了地址的指针重新分配空间,参数p为原有的空间地址*/本回答被提问者采纳
第2个回答  2010-08-27

请问c语言中malloc函数和realloc的区别
c语言中malloc函数和realloc函数的区别为:分配不同、释放不同、强制转化不同。一、分配不同 1、malloc函数:malloc函数对没有分配过的内存块直接进行分配。2、realloc函数:realloc函数是在已经分配好的内存块重新进行分配。二、释放不同 1、malloc函数:malloc函数分配好的内存块一般要用free(size_t siz...

c语言中的动态内存分配函数malloc, calloc, realloc分别是那几个单词...
malloc应该就是memory allocate realloc就是加个re前缀 calloc有人说是complex也有说是clear的,与malloc区别就是多了清0操作

calloc和malloc和realloc的区别
realloc,malloc,calloc的区别三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL malloc用于申请一段新的...

...函数的用法及作用?(比如malloc,calloc,realloc等)
malloc、calloc、realloc的用法(以上述问题为例)及区别:1。malloc(n*sizeof(int)) \/* 请求n个连续的、每个长度为整型的空间,若成功返回这些空间的首地址,失败返回0 *\/ 2。calloc(n,sizeof(int)) \/* 请求n个连续的、每个长度为整型的空间,若成功返回这些空间的首地址并将每个空间赋值为0,...

realloc函数 区别
动态数组第一次要用malloc分配单元,然后根据需要用 realloc 增加单元分配(或减少单元分配),而原来已分配单元里存放的数据保留不变。

C学习:内存分配之malloc函数和alloca函数辨析
C语言内存管理中,malloc函数与alloca函数犹如两把不同的钥匙,它们在动态内存分配上各有千秋。本文将深入解析它们的异同点,并提供一些实用信息供进一步探索。首先,它们的共同点在于动态性和灵活性。malloc和alloca都允许根据程序运行时的需求动态地分配内存,它们的返回类型相同,都是返回指向分配内存的起始...

calloc和malloc的区别
(2)C语言跟内存申请相关的函数主要有 alloca、calloc、malloc、free、realloc等.<1>alloca是向栈申请内存,因此无需释放.<2>malloc分配的内存是位于堆中的,并且没有初始化内存的内容,因此基本上malloc之后,调用函数memset来初始化这部分的内存空间.<3>calloc则将初始化这部分的内存,设置为0.<4>realloc...

calloc函数简介
在C标准库中,calloc通常与malloc、realloc和free等内存管理函数一起使用。malloc用于动态分配内存,realloc用于调整已经分配的内存大小,而free则用于释放先前动态分配的内存,以避免内存泄漏。总之,calloc在内存分配时提供了更安全的初始化选项,是编写高效和健壮程序时不可或缺的工具之一。在处理需要预先清零...

c中 calloc 是哪些单词的缩写
函数malloc()和函数calloc() 的主要区别是前者不能初始化所分配的内存空间,而后者能。如果由malloc()函数分配的内存空间原来没有被使用过,则其中的每一位可能都是0;反之, 如果这部分内存曾经被分配过,则其中可能遗留有各种各样的数据。也就是说,使用malloc()函数的程序开始时(内存空间还没有被重新...

C语言:关于FREE()函数的用法
malloc, alloc, free是c定义的一组内存管理的API函数,当你调用malloc、alloc分配内存时,不仅仅是从堆里面分配得到了可用内存,实际上内存管理子系统还会维护了内存列表。你自己定义的指针不会在这个列表中的,所以free会出问题的。那么,使用new, GlobalAlloc之类的方式分配的内存可不可以使用free呢。我的...

相似回答