realloc

#include <stdlib.h>

main()
{
char* ptr=NULL;
char* ptr2=NULL; ptr = malloc();
printf("after malloc, ptr = %x\n", ptr); ptr2 = realloc(ptr, **);
printf("after realloc, ptr = %x\n", ptr);
printf("after realloc, ptr2 = %x\n", ptr2); // free(ptr); // double free
free(ptr2); ptr = NULL;
ptr2 = NULL;
return ;
}
/*
after malloc, ptr = 840010
after realloc, ptr = 840010
after realloc, ptr2 = 49e0a010 本例子是为了说明ptr = realloc(ptr, len)可能会改变ptr指针值。
realloc: 如果发现当前地址没有足够的内存,则会另外申请一块内存,将原有的数据拷贝过去,返回新内存指针,并free原来的内存。
注意:ptr被free了,但是没有赋值为0,如果不是采用ptr指向新内存,最好手动将ptr赋值为0避免野指针。 */

realloc,c语言的更多相关文章

  1. C语言 realloc为什么要有返回值,realloc返回值具体解释/(解决随意长度字符串输入问题)。

    在C语言操作中会用到大量的内存操作,当中非经常常使用的一个是realloc(). 由字面意思能够知道,该函数的作用是用于又一次分配内存. 使用方式例如以下: NewPtr=(数据类型*)realloc ...

  2. C语言realloc,malloc,calloc的区别【转载】

    转载自:http://www.cnblogs.com/BlueTzar/articles/1136549.html 三个函数的申明分别是: void* realloc(void* ptr, unsig ...

  3. c语言中的内存分配malloc、alloca、calloc、malloc、free、realloc、sbr

    C语言跟内存分配方式 (1) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2) 在栈上创建.在执行函数时,函数内局部变 ...

  4. C语言中动态内存的分配(malloc,realloc)

    动态内存分配:根据需要随时开辟,随时释放的内存分配方式.分配时机和释放时机完全由程序员决定,由于没有数据声明,这部分空间没有名字.无法像使用变量或数组那样通过变量名或数组名引用其中的数据,只能通过指针 ...

  5. C语言 malloc calloc realloc alloc 在分配内存时的 区别

    malloc : 向堆申请分配内存,不初始化 calloc  : 向堆申请分配内存,初始化为0 realloc:  向堆申请分配内存,可调整大小 alloc   :   向栈申请内存,不需手动释放

  6. C语言 malloc、calloc、realloc的区别

    三个函数的申明分别是: void* malloc(unsigned size); void* realloc(void* ptr, unsigned newsize); void* calloc(si ...

  7. C语言,realloc

    void * realloc ( void * ptr, size_t new_size ); 关于realloc的行为方式,结合源码总结为:1. realloc失败的时候,返回NULL: 2. re ...

  8. C语言扩展动态内存报错:realloc(): invalid next size: 0x0000000002365010 ***

    晚上被这个内存扩展崩溃的问题折腾的有点崩溃,当答案揭晓的那一刻,恍然大悟,原来如此简单. 练习题目:输入一个字符串,根据字母进行排序,说白了就是一个简单的冒泡 #include <stdio.h ...

  9. C语言:使用realloc函数对malloc或者calloc动态分配的内存大小进行扩展

    #include<stdio.h> #include<stdlib.h> #include<time.h> typedef struct { char name[3 ...

随机推荐

  1. stdin、stdout、stderr

    1 ferror 2 stdin 3 stdout 4 stderr 1 ferror 功能:检测文件是否出现错误 返值:未出错0,出错非0 说明:每次调用文件输入输出函数,均产生一个新的ferror ...

  2. foj 2150 Fire Game(bfs暴力)

         Problem Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M ...

  3. Yii的场景

    先上代码 class User extends CActiveRecord{    public function rules()    {        return array(          ...

  4. Linux系统下安装phpmyadmin方法

    phpmyadmin下载地址:不要分,赶紧去下载吧!http://download.csdn.net/detail/u011986449/7429799 1.找到 /libraries/config. ...

  5. Thrift使用实例

    首先下载thrift.exe,和对应lib包.注意版本一定要一致. 否则编译会不识别出现错误. 可能会出现org.slf4j这个错误,那么你要把slf4j-api.jar下载下来引入到你的projec ...

  6. sql 去除结尾的回车或者换行

    CREATE FUNCTION REMOVE_ENTER (@DESC VARCHAR(8000))RETURNS VARCHAR(8000)ASBEGIN DECLARE @STR VARCHAR( ...

  7. M记单刷鸡盒副本

    今天去M记单刷鸡盒副本,听说此副本掉落最新道具:黑暗之门.鸡翅区和鸡块区全通无压力,鸡腿区难度最大,老一是个灭团点.现在肚子很难受,刚去厕所吐了一把,看来有点高估自己,此副本最好还是组队前往,单刷压力 ...

  8. C++_nullptr

    C++_nullptr null 0 nullptr 的区别

  9. [转载]CTreeCtrl 和 CListCtrl 控件(VC_MFC)

    来源:http://www.cnblogs.com/kzloser/archive/2012/11/23/2783305.html Tree Control 控件(MSDN 链接) 说明: 树形控件是 ...

  10. struts2笔记03-ActionContext

    1.概念 ActionContext是action的上下文,它包括action执行所需要的对象.struts2对每一个action都会创建一个新的ActionContext实例,同Action一样,是 ...