remalloc 和 malloc的区别
时间: 2023-11-27 09:43:55 浏览: 40
malloc 和 realloc 都是 C 语言中的动态内存分配函数,但它们的作用不同。
malloc 函数用于在堆区分配指定大小的内存空间,并返回该空间的首地址。如果分配失败,则返回 NULL。
realloc 函数用于重新分配已经分配的内存空间的大小。它接受两个参数:第一个参数是已经分配的内存空间的首地址,第二个参数是需要重新分配的内存空间的大小。如果分配成功,则返回新分配内存空间的首地址;如果分配失败,则返回 NULL,并且原来的内存空间不会被释放。
因此,malloc 和 realloc 的主要区别在于:
1. malloc 只能用于分配新的内存空间,而 realloc 可以用于重新分配已经分配的内存空间的大小。
2. realloc 可能会改变原来内存块的地址,而 malloc 不会。
相关问题
realloc和malloc区别
realloc 和 malloc 都是 C 语言中用于动态分配内存的函数。它们的主要区别在于,malloc 用于分配指定大小的内存块,而 realloc 则用于重新分配已经分配的内存块的大小。realloc 还可以用于在已经分配的内存块中移动数据。此外,realloc 还可以用于释放已经分配的内存块。
realloc 跟malloc 的区别
realloc和malloc都是用于动态分配内存的函数,但它们之间有一些主要的区别:
1. 内存大小的变化:malloc用于分配一块指定大小的内存,而realloc用于更改已分配内存的大小。
2. 参数个数:malloc只需要一个参数,即需要分配的内存大小;而realloc需要两个参数,第一个是需要重新分配大小的内存的指针,第二个是新的内存大小。
3. 内存分配方式:malloc会分配一个新的内存块,而realloc则会尽可能地扩展现有的内存块。
4. 返回值:malloc返回一个指向新分配内存的指针,而realloc返回一个指向重新分配后内存的指针。
总的来说,两者的主要区别在于realloc可以扩展已分配的内存块,而malloc只能分配新的内存块。因此,如果需要更改已分配内存的大小,应该使用realloc。
阅读全文