Partilhar via


C6269

Aviso C6269: ordem incorreta possível de operações: Cancelar a referência ignorada

Este aviso indica que o resultado de um ponteiro desreferenciar está sendo ignorada, que dispara a questão de por que o ponteiro está sendo desreferenciar d em primeiro lugar.

O compilador corretamente otimizará distância desreferenciar gratuito.Em alguns casos, entretanto, esse defeito pode refletir um erro de precedência ou lógica.

Uma causa comum para esse defeito é uma demonstrativo de expressão do formulário:

*p++;

Se a intenção desta demonstrativo simplesmente for incrementar o ponteiro p, em seguida, cancelar a referência não é necessário; no entanto, se a intenção for incrementar o local que p está apontando para, e, em seguida, o programa não irão se comportar conforme o esperado porque * p ++ construção é interpretada sistema autônomo * (p++). em vez de (*p)++.

Exemplo

O código a seguir gera este aviso:

#include <windows.h>

void f( int *p )
{
    // code ...
  if( p != NULL )
    *p++;
    // code ...
}

Para corrigir esse aviso, use parênteses, sistema autônomo mostrado no código a seguir:

#include <windows.h>

void f( int *p )
{
    // code ...
  if( p != NULL )
    (*p)++;
    // code ...
}