博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
realloc invalid pointer错误解析
阅读量:7104 次
发布时间:2019-06-28

本文共 763 字,大约阅读时间需要 2 分钟。

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/heyonggang/archive/2012/12/21/2827824.html,如需转载请自行联系原作者

你可能感兴趣的文章
MySQL集群搭建步骤详解
查看>>
什么是活动目录
查看>>
spark install
查看>>
Ubuntu 16.04 部署自己的私有 Docker Registry
查看>>
Spring和SpringMVC的关系
查看>>
Weex从入门到放弃
查看>>
64位操作系统不能安装64位虚拟机的解决办法
查看>>
怎样在log4j.xml配置文件中引入变量:小公司经验较多的我和阿里UC等大公司经验较多的Boss,一些技术交流和探讨...
查看>>
OpenJDK源码研究笔记(五)-缓存Integer等类型的频繁使用的数据和对象,大幅度提升性能(一道经典的Java笔试题)...
查看>>
什么是自然语言处理--学习笔记
查看>>
网闸中的核心技术
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
xxx is not in the sudoers file
查看>>
maven 镜像网站
查看>>
OSI模型有7层结构
查看>>
go语言碎片整理之标准库log
查看>>
导航菜单栏
查看>>
linux权限及权限管理
查看>>
vim补充及多条件判断
查看>>