zoukankan      html  css  js  c++  java
  • realloc invalid pointer错误解析

    realloc invalid pointer错误

    char* temp=(char*) realloc(src,sizeof(char)*100);

    如上面这行代码,可能会出现标题中的错误。错误原因是因为src指向的不是NULL或堆中的地址。

    具体的就是realloc函数要求src为下面两种情况

    1.src==NULL

    2.src指针必须是malloc(), calloc(), 或realloc()分配的

     

    造成错误的代码

    造成错误的代码一般是如下形式是

    char* src="Hello world!";//错误代码

    或者

    char src[100];//错误代码

    上面这两种方式分配内存位于栈区(如果src为局部变量)或者静态区(如果src为全局变量)。讲这样的src传给realloc就会发生realloc invalid pointer错误。

    解决方法:

    1.将src用malloc显示分配内存

    char* src="Hello world!";//错误代码

    可以用下面的代码替换

    char* src=(char*) malloc(strlen("Hello world!"));

    strcpy(src,"Hello world!");//这个要用到string.h头文件

    char src[100];//错误代码

    可以用下面的代码替换

    char* src=(char*) malloc(sizeof(char)*100);

    2.将src置为NULL

    char* src=NULL;

    本文由ladd原创,转载请注明出处

    http://www.cnblogs.com/ladd/archive/2012/07/02/2572112.html

  • 相关阅读:
    微信消息类型和事件类型
    lnmp环境搭建脚本
    laravel框架踩过的坑
    vue结构详解
    PHP消息队列实现及应用
    laravel 运行错误
    笔记分享
    cf730e
    cf 730i
    cf 731f
  • 原文地址:https://www.cnblogs.com/heyonggang/p/2827824.html
Copyright © 2011-2022 走看看