令牌之前的预期主表达式'['

expected primary-expression before '[' token

本文关键字:表达式 令牌      更新时间:2023-10-16
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
void skaityti(int & n,int & kmLimit,struct mailSend[]);
int main(int argc, char *argv[])
{
    struct mailSend {
           string name[50];
           int xCoor[50];
           int yCoor[50];
    };
    int n,kmLimit;
    skaityti(n,kmLimit,mailSend[]);
    for(int i=1;i<=n;i++)
    {
            cout<<mailSend.name[i]<<mailSend.xCoor[i]<<mailSend.yCoor[i]<<endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
void skaityti(int & n,int & kmLimit,struct mail[])
{
     ifstream fd("U1");
     fd>>n>>kmLimit;
     for(int i=1;i<=n;i++) fd>>mailSend.name[i]>>mailSend.xCoor[i]>>mailSend.yCoor[i];
     fd.close();
}

我已经搜索了处理这个问题的信息,但找不到答案,所以决定问你们:(。我得到了很多"在'['标记之前预期的主表达式"或"在'.'标记之前",问题是什么?错误在第15、18和27行。

mailSend是结构类型的名称,而不是变量的名称。当类型需要类型的数组时,不能将该类型的名称作为参数传递。您必须声明一个mailSend数组,该数组可以传递给skaityti()