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

声明一个文件指针数组,报错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;
  }


结果报错

错误 8 error C2275: 'FILE' : illegal use of this type as an expression
错误 9 error C2065: 'fpOutput' : undeclared identifier
错误 10 error 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;
    }
}