此代码片段用于生成模式。
显示"数组类型具有不完整的元素类型"错误!哪里出错?
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;
}
答案 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。