Я делаю программу тральщика для школы, но я получаю эту ошибку на моем кодеПочему я не могу выделить массив с постоянным размером 0?
не может выделить массив постоянного размера 0
Я не знаю, почему это происходит; Я не выделяю размер - я устанавливаю это на 0. Другая проблема заключается в том, как я могу прочитать свой ввод char
по char
, так что я могу сохранить его в своем массиве?
Как вы можете видеть ниже, я использую вход и выход. Я поместил свой вклад и свой выход, чтобы вы, ребята, могли видеть, что им использовать для этой программы. Я хочу прочитать char char
, поэтому я могу сохранить всю карту на массиве.
Я использую MSVC++ 2010.
freopen("input.txt","rt",stdin);
//4 4
//*...
//....
//.*..
//....
//3 5
//**...
//.....
//.*...
//0 0
freopen("output.txt","wt",stdout);
/*Field #1:
*100
2210
1*10
1110
Field #2:
**100
33200
1*100*/
int n=-1;
int m=-1;
int cont =0;
while(n!=0 && m!=0)
{
scanf("%d %d",&n,&m);
int VMatriz[n][m]={0};
int Mapa[n][m]={0};
if (n==0 && m==0)
break;
cont++;
printf("Field #%d",cont);
for (int i=0;i<n;i++)
{ printf("/n");
for (int j=0;j<m;j++)
{
scanf("%d ",&Mapa[i][j]);
if (Mapa[i][j]=='*')
{
if (j-1>=0)
VMatriz[i][j-1]++;
if (j+1<m)
VMatriz[i][j+1]++;
if (i-1>=0)
VMatriz[i-1][j]++;
if (i+1<m)
VMatriz[i+1][j]++;
if (j-1>=0 && i-1>0)
VMatriz[i-1][j-1]++;
if (j-1>=0 && i+1<m)
VMatriz[i+1][j-1]++;
if (j+1<m && i-1>0)
VMatriz[i-1][j+1]++;
if (j+1<m && i+1<m)
VMatriz[i+1][j+1]++;
VMatriz[i][j]='*';
printf("%d",VMatriz[i][j]);
}
}
}
printf("/n");
}
return 0;
}
тегов, как C, так как код, кажется, будьте так. –
@MikeKwan: Ребята, не возвращайте C, потому что он использует компилятор C++ (Visual Studio без явной компиляции как код C), и проблема не в массиве нулевого размера, это просто второе сообщение об ошибке, которое вы видите. –
Ред правильно, когда вы пытаетесь скомпилировать такой код в Visual Studio, вы сначала увидите ошибку константного выражения, а затем ошибку нулевого размера. – ShiggityShiggityShwa