次の方法で共有


C/C++ コードの警告に対応するコードの分析

このセクションでは、C6000 ~ C6999 の範囲の C/C++ コード分析警告の一覧を示します。

このセクションの内容

警告番号

説明

C6001

警告 C6001: 初期化されていないメモリ <変数> を使用しています。

C6011

警告 C6011: NULL ポインター <名前> を逆参照しています。

C6029

警告 C6029: <関数> への呼び出しにバッファー オーバーランが発生した可能性があります: 未確認の値を使用しています。

C6031

警告 C6031: 戻り値が無視されました。<関数> が予期しない値を返した可能性があります。

C6053

警告 C6053: <関数> への呼び出しは、文字列 <変数> を 0 で終了しない可能性があります。

C6054

警告 C6054: 文字列 <変数> は 0 で終了しない可能性があります。

C6057

警告 C6057: 文字数またはバイト数が <関数> への呼び出しで一致していないためにバッファー オーバーランが発生しました。

C6059

警告 C6059: <関数>. への呼び出しに不適切な長さのパラメーターがあります。 <変数> のバッファー サイズではなく、残りの文字数を渡してください。

C6063

警告 C6063: <関数> (変換指定子 <数値> に対応する) への文字列引数がありません。

C6064

警告 C6064: <関数> (変換指定子 <数値> に対応する) への整数引数がありません。

C6066

警告 C6066: non-pointer がパラメーター <数値> として渡されました。<関数> への呼び出しにはポインターが必要です。

C6067

警告 C6067: パラメーター <数値> (<関数> への呼び出し内) は文字列のアドレスでなければなりません。

C6200

警告 C6200: インデックス <名前> は、有効なインデックスの範囲 <min> から <max> (スタックでないバッファー <変数>) を超えています。

C6201

警告 C6201: <変数> のバッファー オーバーランです。スタックが割り当てられた可能性があります。インデックス <名前> は、有効なインデックスの範囲 <min> から <max> を超えています。

C6202

警告 C6202: <変数> のバッファー オーバーランです。<関数> への呼び出しでスタックが割り当てられた可能性があります: 長さ <サイズ> はバッファー サイズ <max> を超えています。

C6203

警告 C6203: バッファー <変数> のバッファー オーバーランです。<関数> への呼び出しで、長さ <サイズ> はバッファー サイズを超えています。

C6204

警告 C6204: <関数> への呼び出しでバッファー オーバーランが発生した可能性があります: 確認されていないパラメーター <変数> が使用されています。

C6209

警告 C6209: 'sizeof<変数1>' をパラメーター <数値> として <関数> への呼び出しで使用しています。<変数2> はワイド文字の配列である可能性があります。バイト数ではなく、文字数を使用しようとしましたか。

C6211

警告 C6211: 例外によりメモリ リーク <ポインター> が発生しています。 メモリをクリーンアップするには、ローカルの catch ブロックを使用してください

C6214

警告 C6214: 意味の異なる整数型の間でのキャストです: HRESULT からブール型

C6215

警告 C6215: 意味の異なる整数型の間でのキャストです: ブール型から HRESULT

C6216

警告 C6216: 意味の異なる整数型の間でのコンパイラ挿入されたキャストです: ブール型から HRESULT

C6217

警告 C6217: 意味の異なる整数型の間の暗黙的なキャストです: 'not' を伴う HRESULT をテストしています。 代わりに、SUCCEEDED または FAILED マクロを使用してください

C6219

警告 C6219: 意味の異なる整数型の間の暗黙的なキャストです: HRESULT を 1 または TRUE と比較しています。 代わりに、SUCCEEDED または FAILED マクロを使用してください

C6220

警告 C6220: 意味の異なる整数型の間の暗黙的なキャストです: HRESULT を -1 と比較しています。 代わりに、SUCCEEDED または FAILED マクロを使用してください

C6221

警告 C6221: 意味の異なる整数型の間の暗黙的なキャストです: HRESULT を整数と比較しています。 SUCCEEDED マクロか FAILED マクロを代わりに使用してください。

C6225

警告 C6225: 意味の異なる整数型の間の暗黙的なキャストです: 1 または TRUE を HRESULT に割り当てています。 S_FALSE を代わりに使用してください。

C6226

警告 C6226: 意味の異なる整数型の間の暗黙的なキャストです: -1 を HRESULT に割り当てています。 E_FAIL を代わりに使用してください。

C6230

警告 C6230: 意味の異なる整数型の間の暗黙的なキャストです: HRESULT をブール値のコンテキストで使用しています。

C6235

警告 C6235: (<0 でない定数> || <式>) は常に 0 でない定数です。

C6236

警告 C6236: (<式> || <0 でない定数>) は常に 0 でない定数です。

C6237

警告 C6237: (<0> && <式>) は常に 0 です。 <式> は評価されることがないため、副作用が発生する可能性があります

C6239

警告 C6239: (<0 でない定数> && <式>) は、常に <式> の結果に評価されます。 ビットごとの and 演算子を使用するつもりでしたか?

C6240

警告 C6240: (<式> && <0 でない定数>) は、常に <式> の結果に評価されます。 ビットごとの and 演算子を使用するつもりでしたか?

C6242

警告 C6242: この try ブロックからのジャンプは、ローカル アンワインドを強制します。 パフォーマンスがかなり低下します

C6244

警告 C6244: <変数> のローカル宣言は、<行> (<ファイル>) の以前の宣言を表示しません

C6246

警告 C6246: <変数> のローカル宣言は、外部スコープの同じ名前の宣言を表示しません。 追加情報: <場所> の以前の宣言を参照してください

C6248

警告 C6248: SECURITY_DESCRIPTOR の DACL を NULL に設定すると、保護されないオブジェクトとなります

C6250

警告 C6250: MEM_RELEASE フラグなしに <関数> VirtualFree を呼び出すことで、メモリが解放される可能性はありますが、アドレスの説明 (VAD) は解放されません。これは、アドレス スペース リークを発生させる原因になります。

C6255

警告 C6255: _alloca は、スタック オーバーフロー例外を発生させて失敗を示します。 _alloca_s を使用してください

C6258

警告 C6258: TerminateThread を使用すると、正しくスレッドをクリーンアップすることができません

C6259

警告 C6259: ラベル付きのコードには到達できません: switch-expr の (<式gt; & <定数>) は <case ラベル> に評価されません

C6260

警告 C6260: 通常、sizeof * sizeof は不適切です。文字数またはバイト数を使用しようとしましたか?

C6262

関数 C6262: 関数はスタックの <定数> バイトを使用します: /analyze:stacksize<定数> を超えています。 データの一部をヒープに移動することを考慮してください

C6263

警告 C6263: ループ内で _alloca を使用しています: この動作は、すぐにスタックのオーバーフローを発生させます

C6268

警告 C6268: 操作の順序が不適切です: (<TYPE1>)(<TYPE2>)x + y です。 (<TYPE1>)((<TYPE2>)x + y) にかっこが不足している可能性があります

C6269

警告 C6269: 操作の順序が不適切な可能性があります: 逆参照は無視されます

C6270

警告 C6270: <関数> への float 引数がありません: 変換指定子 <数値> に対応する float 引数を追加してください

C6271

警告 C6271: 余分な引数が <関数> に渡されました: パラメーター <数値> は、書式文字列によって使用されていません

C6272

警告 C6272: float でない値が引数 <数値> として渡されました。<関数> への呼び出しには float が必要です

C6273

警告 6273 - 整数でない値が引数 <数値> として渡されました。<関数> への呼び出しには整数が必要です: ポインター値が渡されてようとしている場合は、%p を使用してください。

C6274

警告 C6274: 文字でない値が引数 <数値> として渡されました。<関数> への呼び出しには文字が必要です

C6276

警告 C6276: 意味が異なる文字列型の間でのキャストです: char * から wchar_t * です。 無効な文字列を使用すると、未定義の動作を発生させる原因となる可能性があります。

C6277

警告 C6277: <関数> への呼び出しに引用符で囲まれていないパスを伴う NULL アプリケーション名があります: パスにスペース文字が含まれていると、セキュリティ保護の脆弱性の原因となります

C6278

警告 C6278: <変数> は、配列 new [] を伴って割り当てられていまが、スカラー delete で削除されています。 デストラクターは呼び出されません

C6279

警告 C6279: <変数> はスカラー new で割り当てられていますが、配列 delete [] で削除されています。

C6280

警告 C6280: <変数> は <関数> で割り当てられていますが、<関数> で削除されています。

C6281

警告 6281 - 操作の順番が不適切です: ビットごとの演算子よりも関係演算子が優先されます。

C6282

警告 C6282: 不適切な演算子です: ブール値のコンテキストの定数の代入式です。 代わりに、'==' を使用してください

C6283

警告 C6283: <変数> は配列 new [] で割り当てられていますが、スカラー delete で削除されています

C6284

警告 C6284: オブジェクトがパラメーター '%d' として渡されました。<関数> への呼び出しには文字列が必要です

C6285

警告 C6285: (<0 でない定数> || <0 でない定数>) は常に 0 でない定数です。 ビットごとの and 演算子を使用するつもりでしたか?

C6286

警告 C6286: (<0 でない定数> || <式>) は常に 0 でない定数です。 <式> は評価されることがないため、副作用が発生する可能性があります

C6287

警告 C6287: 重複するコードです: 左と右のサブ式が同一です

C6288

警告 C6288: 不適切な演算子です: && を使用した相互包括は常に 0 です。 || を使用するつもりでしたか?

C6289

警告 C6289: 不適切な演算子です: || を使用した相互排除は常に 0 でない定数となります。 代わりに && を使用しますか?

C6290

警告 C6290: 論理演算結果に対してビットごとの演算を行っています: & よりも ! が優先されます。 代わりに && または (!(x & y)) を使用します。

C6291

警告 C6291: 論理演算結果に対してビットごとの演算を行っています: | よりも ! が優先されます。 代わりに || または (!(x | y)) を使用します。

C6292

警告 C6292: for-loop の定義が無効です: カウント数が最大値を超えることはできません

C6293

警告 C6293: for-loop の定義が無効です: カウント数が最小値未満になることはできません

C6294

警告 C6294: for-loop の定義が無効です: 最初の条件はテストを満たしていません。 ループ ボディは実行されません

C6295

警告 C6295: for-loop の定義が無効です: <変数> 値は常に "min" から "max" の範囲内です。 ループが無限に実行されます。

C6296

警告 C6296: for-loop の定義が無効です。ループ ボディは 1 度だけ実行されます

C6297

警告 C6297: 算術オーバーフローです: 32 ビット値はシフトされ、64 ビット値にキャストします。 結果は予期した値にならないことがあります。

C6298

警告 C6298: 読み取り専用の文字列 <ポインター> を書き込み可能な文字列引数として使用しています: この動作は、静的な読み取り専用メモリへの書き込みを試行して、ランダム クラッシュを発生させる原因となる可能性があります

C6299

警告 C6299: ビット フィールドとブール型を明示的に比較すると、予期しない結果を生成します

C6302

警告 C6302: 書式文字列の不一致です: 文字の文字列がパラメーター <数値> として渡されました。<関数> への呼び出しには、ワイド文字の文字列が必要です

C6303

警告 C6303: 書式文字列の不一致です: ワイド文字の文字列がパラメーター <数値> として渡されました。<関数> への呼び出しには文字の文字列が必要です

C6305

警告 C6305: sizeof 数と countof 数の間で不一致が発生した可能性があります

C6306

警告 C6306: <関数> への不適切な呼び出しです: va_list を引数として受け入れる <関数> を使用してください

C6308

警告 C6308: 'realloc' は null ポインターを返す可能性があります: null ポインターを、引数として 'realloc' へ渡された <変数> に割り当てると、元のメモリ ブロックにメモリ リークを発生させる原因となります

C6309

警告 C6309: 引数 <数値> は null です: これは <関数> の関数指定に従っていません

C6310

警告 C6310: 例外フィルター内の無効な定数は、予期しない動作を発生させる原因となる可能性があります

C6312

警告 C6312: 無限ループが発生している可能性があります: try-except の例外フィルター式で定数 EXCEPTION_CONTINUE_EXECUTION が使用されています。

C6313

警告 C6313: 不適切な演算子です: 0 値のフラグをビットごとの and と共にテストすることはできません。 0 値のフラグを探すには、等値テストを使用してください。

C6314

警告 C6314: 操作の順序が不適切です: 条件式の演算子よりもビットごとの or が優先されます。 意思を明確にするためにかっこを追加してください

C6315

警告 C6315: 操作の順序が不適切です: ビットごとの or よりもビットごとの and が優先されます。 意思を明確にするためにかっこを追加してください

C6316

警告 C6316: 不適切な演算子です: テストされた式は、定数であり、0 ではありません。 ビットが設定されたかどうかを決定するには、ビットごとの and を使用してください。

C6317

警告 C6317: 不適切な演算子です: 論理否定演算子は 1 の補数演算子 (~) と代替できません

C6318

警告 C6318: 正しく定義されていない __try および __except です: 定数 EXCEPTION_CONTINUE_SEARCH または例外フィルター式で 0 に評価される別の定数が使用されています。 例外ハンドラー ブロックのコードは実行されません

C6319

警告 C6319: テストされた式内でのコンマ演算子を使用すると、作用が存在しないときに左辺の引数が無視される原因となります

C6320

警告 C6320: 例外フィルター式は定数 EXCEPTION_EXECUTE_HANDLER です。 これは、処理されることを意図していない例外をマスクする可能性があります。

C6322

警告 C6322: 空の _except ブロックです

C6323

警告 6323 - ブール型で算術演算子を使用しています。

C6324

警告 C6324: 不適切に <関数1> を使用している可能性があります: <関数2> を使用しようとしましたか?

C6326

警告 C6326: ある定数と別の定数を比較している可能性があります

C6327

警告 C6327: バッファー オーバーランの可能性があります: SysAllocStringLen は、コピーする文字数を確認しないで <数値> 文字を文字列 <変数> からコピーします。 コードがクラッシュする可能性があります

C6328

警告 C6328: <型> はパラメーター <数値> として渡されました。<型> は <関数> への呼び出しに必要です

C6331

警告 C6331: 無効なパラメーターです: <function> と組み合わせて MEM_RELEASE および MEM_DECOMMIT を渡すことはできません。 この呼び出しはエラーになります。

C6332

警告 C6332: 無効なパラメーターです: dwFreeType パラメーターとして 0 を <関数> に渡すことはできません。 この呼び出しはエラーになります。

C6333

警告 C6333: 無効なパラメーターです: MEM_RELEASE および 0 でない dwSize パラメーターを <関数> に渡すことはできません。 この呼び出しはエラーになります。

C6334

警告 C6334: 演算子を伴う式に適用される sizeof 演算子は、予期しない結果を生成する可能性があります

C6335

警告 C6335: 処理情報ハンドル <ハンドル名> がリークしています

C6336

警告 C6336: 質問演算子よりも算術演算子が優先されます。意思を明確にするためにかっこを追加してください

C6381

警告 C6381: Shutdown API <関数> には、有効な dwReason または lpMessage が必要です

C6383

警告 C6383: 要素数からバイト数への変換によるバッファー オーバーランです: 要素数は、パラメーター <数値> に対して <関数> への呼び出しで必要です。

C6384

警告 C6384: ポインターのサイズを別の値によって除算しています

C6385

警告 C6385: 無効なデータです: <バッファー名> へアクセスしています。読み取り可能なサイズは <サイズ1> バイトですが、<サイズ2> バイトを読み取る可能性があります: 行: x, y

C6386

警告 C6386: バッファー オーバーランです: <バッファー名> へアクセスしています。書き込み可能なサイズは <サイズ1> バイトですが、<サイズ2> バイトを書き込む可能性があります: 行: x, y

C6387

警告 C6387: <引数> は <値> である可能性があります: この動作は、関数 <関数名> の指定に従っていません: 行: x, y

C6388

警告 C6388: <引数> は <値> ではない可能性があります: この動作は、関数 <関数名> の指定に従っていません: 行: x, y

C6400

警告 C6400: <関数名> が、定数文字列 <文字列名> と大文字と小文字を区別しないで比較するために使用されています。 英語でないロケールで予期しない結果が生成されます

C6401

警告 C6401: 既定ロケールで <関数名> が、定数文字列 <文字列名> と大文字と小文字を区別しないで比較するために使用されています。 英語でないロケールで予期しない結果が生成されます

C6500

警告 C6500: 無効な注釈です: <名前> プロパティの値は無効です

C6501

警告 C6501: 注釈の競合です: <名前> プロパティは、以前に指定されたプロパティと競合します

C6503

警告 C6503: 注釈の競合です: 参照を Null=Yes または Null=Maybe に設定することはできません

C6504

警告 C6504: 無効な注釈です: プロパティは、ポインター、pointer-to-member、または配列型の値でのみ使用できます

C6505

警告 C6505: 無効な注釈です: MustCheck プロパティは、void 型の値では使用できません

C6506

警告 C6506: 無効な注釈です: <名前> プロパティは、ポインターまたは配列型でのみ使用できます

C6507

警告 C6507: 注釈の競合です: 後条件の Deref=0 での Null プロパティは、前提条件での Null プロパティのサブセットでなければなりません

C6508

警告 C6508: 無効な注釈です: 書き込みアクセスは const 値では許可されていません

C6509

警告 C6509: 無効な注釈です: 'return' を前提条件から参照することはできません

C6510

警告 C6510: 無効な注釈です: NullTerminated プロパティは、ポインターまたは配列型の値でのみ使用できます

C6511

警告 C6511: 無効な注釈です: MustCheck プロパティは Yes または No でなければなりません

C6512

警告 C6512: 無効な注釈です: Valid プロパティが No である場合、Null プロパティは Maybe でなければなりません

C6513

警告 C6513: 無効な注釈です: ElementSizeConst には、追加サイズのプロパティが必要です

C6514

警告 C6514: 無効な注釈です: <名前> プロパティの値は配列のサイズを超えています

C6515

警告 C6515 - 無効な注釈です: <名前> プロパティは、ポインター型の値でのみ使用できます

C6516

警告 C6516: 無効な注釈です: <名前> 属性にはプロパティが指定されていません

C6517

警告 C6517: 注釈の競合です: ValidElementsConst および ValidBytesConst を、読み取り可能でないバッファーで指定することはできません

C6518

警告 C6518: 注釈の競合です: WriteableElementsConst および WriteableBytesConst を、書き込み可能でないバッファーで指定することはできません

C6521

警告 C6521: 無効なサイズ指定です: * 演算子はポインター型にのみ適用できます

C6522

警告 C6522: 無効なサイズ指定です: 式は整数型でなければなりません

C6523

警告 C6523: 無効なサイズ指定です: パラメーター <名前> が見つかりません

C6525

警告 C6525: 無効なサイズ指定です: プロパティの値が有効でない可能性があります

C6526

警告 C6526 - 無効なサイズ指定です: 式は配列またはポインター型でなければなりません

C6530

警告 6530: 認識されない書式文字列のスタイル <名前> です。

C6535

警告 C6535: バッファーを最大値 (size_t) よりも大きいサイズ <n> にすることはできません

参照

概念

安全なコードを作成するためのガイドライン

その他の技術情報

コード分析を使用した C/C++ コードの品質の分析