char ポインター (*pData など) が NULL に初期化されずに宣言されているコード スニペットを見つけました。
char *pData, *pData2;
char string[10] = "Hello"
pData2 = &string[0];
SomeFuntionToAssignValue(pData2, &pData);
SomeFuntionToAssignValue(char *pData2, char **pData)
{
if (something)
{
*pData = pData2;
}
else if (something)
{
*pData = &pData2[some calculation]
}
}
関数 SomeFuntionToAssignValue() を呼び出した後、pData を逆参照すると、いつでも「メモリ アクセス例外」エラーがスローされますか?
コンパイル中またはローカル テスト中 (ここでは、いつでも再ロードできるターゲットでテストが行われるため、通常はメモリ破損の可能性が減少します)、「メモリ アクセス例外」エラーは発生しませんでした。
しかし、ターゲットが少なくとも 1 週間リロードされなかったフィールド環境でのテスト中に、「メモリ アクセス例外」エラーがスローされました。
では、NOT を実行char *pData = NULL
すると「メモリ アクセス例外」エラーが発生する可能性はありますか?