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

读写文件,该怎么解决

2012-03-06 
读写文件以下程序在TC中编译时出现警告,说什么“可疑的指针软化”,不知什么原因,而且运行时不会建立文件,只

读写文件
以下程序在TC中编译时出现警告,说什么“可疑的指针软化”,不知什么原因,而且运行时不会建立文件,只有到目录中去运行时才会建,不知什么原因?请教高手,望能详解,谢谢!!

#   include   <stdio.h>
main()
{
FILE   *fp;
int   i;
char   (*ch)[10],p[10][10]={ "abc ", "def ", "eim ", "dd ", "ownvb ", "d ",
              "wpxb ", "wpbtuep ", "wix ", "wq "};
ch=p;


if((fp=fopen( "avc.dat ", "w "))==NULL)
{
printf( "cann 't   open   this   file!\n ");
exit(0);  
}
printf( "%s\n ",*(ch+4));
for(i=0;i <10;i++)
{
if(fputs(ch++,fp)==EOF)
printf( "erro ");
fputs( "\n ",fp);
}


}

[解决办法]
建议还是少用 (*ch)[10] 形式的用法
对内存的操作要慎重
涉及到内存泄露等问题
[解决办法]
不习惯使用指向数组的指针,不过按照你的思路改为:


#include <stdio.h>
#include <STDLIB.H> //1

void main(void) //2
{
FILE *fp;
int i;
char (*ch)[10],p[10][10]={ "abc ", "def ", "eim ", "dd ", "ownvb ", "d ",
"wpxb ", "wpbtuep ", "wix ", "wq "};
ch = p;


if((fp=fopen( "avc.dat ", "w "))==NULL)
{
printf( "cann 't open this file!\n ");
exit(0);
}
printf( "%s\n ",*(ch+4));
for(i=0;i <10;i++)
{
if(fputs((char *)ch++,fp)==EOF) //3
printf( "erro ");
fputs( "\n ",fp);
}
fclose(fp); //4
}

热点排行