realloc 和 malloc

LovGardenia LovGardenia 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
他们的内存分配的位置似乎不是一样的,在子函数使用的效果似乎不同。
例:
定义函数

void copy(int *destination, int *source, int length)
{
1. destination = (int *)malloc(length * sizeof(int));
2. /* destination = (int *)realloc(destination, length * sizeof(int)); */

/* Copy here */
}

在主函数中定义:
int source[N] = {1,1,1,1,...};
int *destination;

copy(destination, source, N);

print的结果不同,malloc打印出来的是乱码,而realloc正确。


有没有谁知道为什么,以及他们的实现细节?
另外,在子函数中分配内存这样实现稳定吗?安全吗?有没有什么更好的方法代替?

谢谢!
...全文

相关推荐

heaptrace:跟踪 malloc、realloc 和 free 调用

堆跟踪 跟踪对 malloc、realloc 和 free 的调用 用法 可以像这样使用LD_PRELOAD加载共享对象 LD_PRELOAD=heap_trace.so ./executable 例子 heaptrace 将输出有关 malloc、realloc 和 free 调用的信息 父函数的地址或已解析符号 正在进行的调用包括参数 调用的返回值 % LD_PRELOAD=heap_trace.so ./nc 0x7f2287787492: malloc(5) = 0xec4010 0x7f228778232e: free(0xec4010) ... 0x7f22877879f0: free(0xec6360) 0x7f2287785aa7: free(0xec4f00) nc: you must specify the address/port couple of the remo

橘子乔JVZI

C语言之malloc和realloc

C语言之malloc和realloc 前言: 利用malloc和realloc函数对内存进行动态分配,有利用提高内存的使用效率,并可以在程序开始时不用确定内存的大小。 一、malloc和free 他们都在头文件stdlib.h中声明,函数的原型如下 void *malloc ( size_t size );//malloc返回一个void *的指针,它可以转换为其它任何类型的指针。 void fr...

Mekeater

Malloc:学校项目,其中包括重新编码stdlib函数malloc,realloc和free

内存分配 学校项目,其中包括重新编码stdlib函数malloc,realloc和free

Her101

Memory-Manager:操作系统的内存管理系统仿真。 支持 malloc、free、realloc 和 compact 等功能

内存管理器 操作系统的内存管理系统仿真。 支持 malloc、free、realloc 和 compact 等功能

潜水小透明

lwmem:用于具有内存限制的嵌入式系统的轻型动态内存管理器库。 它实现了malloc,calloc,realloc和free函数

lwmem:用于具有内存限制的嵌入式系统的轻型动态内存管理器库。 它实现了malloc,calloc,realloc和free函数

火影耀阳
评论 18
收藏 已收藏
分享
返回顶部
LovGardenia
C语言 70,039 成员 243,237 内容