首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于动态空间有关问题:下面程序为什么在执行free函数时出错

2012-05-27 
关于动态空间问题:下面程序为什么在执行free函数时出错?#includestdio.h#includestdlib.hvoid main(){

关于动态空间问题:下面程序为什么在执行free函数时出错?
#include<stdio.h>
#include<stdlib.h>
void main()
{
char *s;

s=(char *)malloc(sizeof(char));
gets(s);
puts(s);
  free(s);
s=NULL;
}

[解决办法]

C/C++ code
#include<stdio.h>#include<stdlib.h>void main(){char *s;s=(char *)malloc(sizeof(char*));                //把这里改成char*就行了,s为指针,原来的分配空间的不够gets(s);puts(s);  free(s);s=NULL;}
[解决办法]
错,不在于free。而是因为,s=(char *)malloc(sizeof(char));只申请了一个空间,装不了一个字符串。楼主可以适当增大申请的空间。比如s=(char *)malloc(100*sizeof(char));

热点排行