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);
}
このコード例では、コード分析ツールは、次の警告が報告されます: