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

声明一个文件指针数组,报错illegal use,该如何解决

2012-04-21 
声明一个文件指针数组,报错illegal useC/C++ code//打开k+m个要写入的文件//(FILE *)fpOutput[](FILE**)m

声明一个文件指针数组,报错illegal use

C/C++ code
//打开k+m个要写入的文件  //(FILE *)fpOutput[]=(FILE**)malloc(sizeof(FILE*)*(k+m));  FILE **fpOutput;  fpOutput=(FILE**)malloc(sizeof(FILE*)*(k+m));   char strOutputPath[MAX_PATH];  for (size_t i=0;i<(k+m);i++)  {      sprintf(strOutputPath,".//out//%d",i+1);//合成文件路径      fpOutput[i]=fopen(strOutputPath,"wb");      if (fpOutput[i]==NULL)          return false;  }

结果报错

错误8error C2275: 'FILE' : illegal use of this type as an expression
错误9error C2065: 'fpOutput' : undeclared identifier
错误10error C2100: illegal indirection

在MFC中使用没问题,但新建别的工程就报错
用new用malloc都一样


[解决办法]
.c文件中需要将变量声明放在函数开头,如
C/C++ code
#include <stdio.h>#include <stdlib.h>int main(){    //C程序变量声明放函数开头    int k=1,m=1;    FILE **fpOutput;    char strOutputPath[MAX_PATH];    size_t i;        fpOutput=(FILE**)malloc(sizeof(FILE*)*(k+m));    for (i=0;i<(k+m);i++)    {        sprintf(strOutputPath,".//out//%d",i+1);//合成文件路径        fpOutput[i]=fopen(strOutputPath,"wb");        if (fpOutput[i]==NULL)            return false;    }} 

热点排行