数组类型具有不完整的模式匹配元素类型

时间:2016-08-02 15:29:36

标签: c++ c

此代码片段用于生成模式。

显示"数组类型具有不完整的元素类型"错误!哪里出错?

int main(){
int n; 
char a[][];
scanf("%d",&n);

for (int i =0; i<n; i++)
{
for (int j=0; j<i; j++)
    {
        if(i>=j)
          a[i][j] = "#";
        else 
            a[i][j]=" ";
    }
}
return 0;
}

2 个答案:

答案 0 :(得分:1)

这个数组声明

char a[][];

无效。每个维度中的元素数量未知。

如果它是C程序,那么你可以使用可变长度数组。例如

int main( void )
{
    int n; 

    scanf("%d",&n);

    char a[n][n];

    //...

考虑到这种情况

if(i>=j)

没有意义,因为内部循环定义为

for (int j=0; j<i; j++)
              ^^^^

即我在循环体内总是大于j。

答案 1 :(得分:0)

char a[][];

您没有确定声明中数组的大小(这就是错误原因)。在声明数组时需要给出大小。

char a[10][10];  // or something

如果你想让app size动态使用指针或使用VLA。