C6269
upozornění C6269: možné nesprávné pořadí operací: ignorováno zrušení reference
Toto upozornění indikuje, že výsledek přístupu přes ukazatel je ignorován, což vyvolává otázku, proč je vlastně použito přístupu přes ukazatel.
Kompilátor bude správně optimalizovat bezdůvodné dereference.V některých případech však tato vada může odrážet prioritu nebo logickou chybu.
Obvyklou příčinou této vady je výraz ve formuláři:
*p++;
Pokud je záměrem tohoto výrazu jednoduše zvýšit ukazatel p, pak je přístup přes ukazatel zbytečný. Avšak, pokud je záměrem zvyšovat umístění, na které p ukazuje, pak se program nebude chovat dle očekávání, protože konstrukce *p++ je interpretována jako * (p++).místo (*p)++.
Příklad
Následující kód generuje toto upozornění:
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
*p++;
// code ...
}
Chcete-li opravit toto upozornění, použijte závorky tak, jak je ukázáno v následujícím kódu:
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
(*p)++;
// code ...
}