c++ - 数组类型的元素类型不完整,无法进行模式匹配

标签 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;
}

最佳答案

这个数组的声明

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++)
              ^^^^

也就是说,在循环体内,i 始终大于 j。

关于c++ - 数组类型的元素类型不完整,无法进行模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38724704/

相关文章:

C++数组评估

C编程,realloc后丢失数据

c - 为什么在编译我的代码 C (linux) 时出现段错误(核心转储)

c - 动态分配内存中指针的访问值

c - winapi: CreateProcess 但隐藏了进程的窗口?

c++ - 变量导致 C++ 中的错误

Cython 中的 C++ 结构继承

维基百科 "Reconfigurable computing"代码示例可以在像 Haskell 这样的高级编译器中解决吗?

c++ - 名称查找和类范围

python - 如何使用 Python 将更改应用于源文件?