は、私は学校のための掃海艇のプログラムを行っていますが、私は私のコードでこのエラーを得続けます。私はサイズを割り当てていません - 私はそれを0に設定しています。別の問題は、char
によってchar
で私の入力をどのように読み取ることができるのですか?「定数サイズ0の配列を割り当てることができません」というメッセージが表示されるのはなぜですか?</p> <blockquote> <p>はなぜこれが起こっている私にはわからない一定のサイズ0</p> </blockquote> <p>の配列を割り当てることができません
以下に示すように、私は入力と出力を使用しています。私はあなたの入力と私の出力をコメンテッドので、皆さんは私がこのプログラムのために何を使用しているかを見ることができます。 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++コンパイラ(Visual StudioではCコードとして明示的にコンパイルせずに)を使用しているため、Cとして再タグ付けしません。問題はゼロサイズの配列ではなく、2番目のエラーメッセージです。 –
Edが正しいです。このようなコードをVisual Studioでコンパイルしようとすると、まず定数式エラーとゼロサイズエラーが表示されます。 – ShiggityShiggityShwa