
不过,还是给你个例子吧:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp
int flen
char *p
fp = fopen ("apple.in","rb")
if(fp==NULL)
{
return 0
}
fseek(fp,0L,SEEK_END)//定位到文件末尾
flen=ftell(fp)//求文件大小
p=(char *)malloc(flen+1)//分配文件大小那么大的内存
if(p==NULL)
{
fclose(fp)
return 0
}
fseek(fp,0L,SEEK_SET)//定位到文件头
fread(p,flen,1,fp)//一次性读取文件
p[flen]=0//把结尾清0
printf("%s\n",p)
fclose(fp)
fp = fopen ("apple.out","wb")
if(fp==NULL)
{
free(p)
return 0
}
fwrite(p,flen,1,fp)//一次性写入文件
fclose(fp)
free(p)
return 0
}
局部变量定义过大或者递归次数过多 都可能出现爆栈。
如果是前者, 那么可以改成static 或者定义为全局变量。
如果是后者 那就需要优化算法了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)