fopen出现段错误

2008年11月7日星期五

 

写了一个动态规划来计算球员多步踢球中间点的功能。
可是一开始就报段错误。
段错误很多种啊,数组越界访问,文件读写,内存、指针误操作。
还正好,我的程序里基本都有了。
把每个子功能挨个注释掉,可是不断的段错误。
最后排除到了文件读写那段。
         }
  FILE *p=fopen("./kicktable.txt","rw");
   for(i=0;i<36;i++)
     {
       fprintf(p, "\n");
       for(j=0;j<100;j++)
         fprintf(p,"%f ",m_arrayFastKick[i][j]);
     }
     fclose(p);

可恶,这错了什么呢。
man fopen,说如果错误会返回什么什么,不会是fopen错了吧。
于是在一个小程序里写了一个fopen的操作,呵呵,竟然就是这个玩意儿,fprint就会报错。
也检查出来fopen的返回值是NULL,可还是不明白。

细细的读一下man文档,终于想到,这个stupid的错误,来自于rw,上次就是写关于文件的操作的 时候问题一大堆,最后就是发现rw是无法打开文件进行读写的,这次又犯这个错误。汗死......
只需将aw换成“w+”,ok。

基本功不扎实啊

0 评论: