[解決済み】エラー:'for'ループの初期宣言はC99モードでしかできない【重複
2022-01-25 05:49:32
質問
以下のエラーが発生するのですが、std=c99/std=gnu99モードとは何ですか?
ソースコード
#include <stdio.h>
void funct(int[5]);
int main()
{
int Arr[5]={1,2,3,4,5};
funct(Arr);
for(int j=0;j<5;j++)
printf("%d",Arr[j]);
}
void funct(int p[5]) {
int i,j;
for(i=6,j=0;i<11;i++,j++)
p[j]=i;
}
Error Message:
hello.c: In function ‘main’:
hello.c:11:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for(int j=0;j<5;j++)
^
hello.c:11:2: note: use option -std=c99 or -std=gnu99 to compile your code`
解決方法は?
これは、forループの中で変数を宣言することが、C99(1999年に発行されたCの規格)までは有効なC言語ではなかったためです。他の人が指摘したように、カウンターをforの外で宣言するか、-std=c99フラグを使って、この規格を使っていることをコンパイラに明示的に伝え、そのように解釈してもらうことが可能です。
関連
-
[解決済み】Valgrind が "Invalid write of size 8" で文句を言う。
-
[解決済み】valgrind - サイズ8のブロックが割り当てられた後、アドレス ---- が0バイトになる。
-
[解決済み】Cコンパイルエラーです。Idは1終了ステータスを返した
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み】エラー。非スカラー型への変換を要求された
-
[解決済み】Linuxでexeclp()がどのように動作するのか理解できません。
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言
-
[解決済み] for loop initial declaration used outside C99 mode" GCCエラーを修正するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Cコンパイルエラー。"変数サイズのオブジェクトが初期化されていない可能性がある"
-
[解決済み】Valgrind - strcpyのサイズ1の無効な書き込み
-
[解決済み】ISO C90では、C言語での宣言とコードの混在が禁止されています。
-
[解決済み】初期化がキャストなしで整数からポインタを作成 - C言語
-
[解決済み】スレッド1:EXC_BAD_ACCESS(コード=1、アドレス=0x0)標準Cメモリ問題
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み] テスト
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言