Advertencia C6269
Posible orden incorrecto de las operaciones: se omite la desreferencia
Esta advertencia indica que se omite el resultado de una desreferencia de puntero, lo que, en primer lugar, plantea la pregunta de por qué el puntero se está desreferenciando.
Comentarios
El compilador optimizará correctamente la desreferencia gratuita. Sin embargo, en algunos casos, este defecto puede reflejar una prioridad o un error lógico.
Una causa común de este defecto es una instrucción de expresión con el formato:
*p++;
Si la intención de esta instrucción es simplemente incrementar el puntero p
, la desreferencia es innecesaria; sin embargo, si la intención es incrementar la ubicación a la que p
apunta, el programa no se comportará según lo previsto porque p++
la construcción se interpreta como (p++)
en lugar de (*p)++
.
Nombre del análisis de código: POINTER_DEREF_DISCARDED
Ejemplo
El código siguiente genera esta advertencia:
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
*p++;
// code ...
}
Para corregir esta advertencia, use paréntesis como se muestra en el código siguiente:
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
(*p)++;
// code ...
}
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de