C28183
警告 C28183: 引数は 1 つの値である可能性があり、ポインターで見つかった値のコピーです
この警告は、この値が現在のコンテキストでは不可能であることを示します。この警告は、通常 NULL 値で許可されていない関数に引数として渡すときに表示されます。値は、指定された変数に実際に見つけて引数は、その変数のコピーです。
コード分析ツールは、限定的なポインターは NULL か、無効な値が含まれていることを確認できる最初の点でこの警告を報告します。ただし、これはエラーがトレースに実際に先ほど作成できるのと同じです。このような場合、コード分析ツールは、最初のインスタンスの行番号を示します。通常、限定的な警告は適切であると判断できない場所です。このような場合、これが発生する前の場所は警告メッセージに付けられます。通常、コード変更はレポートの時点ではなく、その行番号、前に発生します。
使用例
次の例では、コード分析ツールは、s が if のステートメントで null である if の本体が取得されることを確認できます。ポインター s は t に割り当てられ、t は NULL の逆参照が発生する方法で使用されます。
#include <windows.h>
int fun2(char *s)
{
char *t;
if (s == NULL) {
//... but s is unchanged
}
t = s;
return lstrlenA(t);
}
このコード例のコード分析ツールは、次の警告を報告します: