realloc 和 malloc
例:
定义函数
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
C语言之malloc和realloc
C语言之malloc和realloc 前言: 利用malloc和realloc函数对内存进行动态分配,有利用提高内存的使用效率,并可以在程序开始时不用确定内存的大小。 一、malloc和free 他们都在头文件stdlib.h中声明,函数的原型如下 void *malloc ( size_t size );//malloc返回一个void *的指针,它可以转换为其它任何类型的指针。 void fr...
Malloc:学校项目,其中包括重新编码stdlib函数malloc,realloc和free
内存分配 学校项目,其中包括重新编码stdlib函数malloc,realloc和free
Memory-Manager:操作系统的内存管理系统仿真。 支持 malloc、free、realloc 和 compact 等功能
内存管理器 操作系统的内存管理系统仿真。 支持 malloc、free、realloc 和 compact 等功能
lwmem:用于具有内存限制的嵌入式系统的轻型动态内存管理器库。 它实现了malloc,calloc,realloc和free函数
lwmem:用于具有内存限制的嵌入式系统的轻型动态内存管理器库。 它实现了malloc,calloc,realloc和free函数


