Share via


Advertencias de análisis de código de C/C++

En esta sección se muestran las advertencias de análisis de C/C++ comprendidas en el intervalo de C6000 a C6999.

En esta sección

Número de advertencia

Descripción

C6001

Advertencia C6001: Usando la memoria sin inicializar <variable>

C6011

Advertencia C6011: Desreferenciación del puntero NULL <nombre>

C6029

Advertencia C6029: Posible saturación de búfer en la llamada a <función>: uso del valor sin comprobar

C6031

Advertencia C6031: Se omitió el valor devuelto. <función> podría devolver un valor inesperado

C6053

Advertencia C6053: La llamada a <función> no puede tener una cadena <variable> terminada en cero

C6054

Advertencia C6054: La cadena <variable> no puede terminar en cero

C6057

Advertencia C6057: Saturación de búfer debido al número de caracteres y número de bytes que no coinciden en la llamada a <función>

C6059

Advertencia C6059: Parámetro de longitud incorrecta en la llamada a <función>. Pase el número de caracteres restantes, no el tamaño del búfer de <variable>

C6063

Advertencia C6063: Falta el argumento de cadena de <función> que corresponde con el especificador de conversión <número>

C6064

Advertencia C6064: Falta el argumento de entero de <función> correspondiente al especificador de conversión <número>

C6066

Advertencia C6066: No se pasó el puntero como parámetro <número> cuando el puntero es necesario para llamar a <función>

C6067

Advertencia C6067: El parámetro <número> de la llamada a <función> debe ser la dirección de la cadena

C6200

Advertencia C6200: El índice <nombre> está fuera del intervalo del índice <mín> válido de <máx> para el búfer fuera de pila <variable>

C6201

Advertencia C6201: Saturación de búfer para <variable>, posiblemente asignado a la pila: el índice <nombre> está fuera del intervalo válido comprendido entre <mín> y <máx>

C6202

Advertencia C6202: Saturación de búfer para <variable>, que está asignado a la pila, en la llamada a <función>: la longitud <tamaño> supera el tamaño de búfer <máx>

C6203

Advertencia C6203: Saturación de búfer para el búfer fuera de pila <variable> en la llamada a <función>: la longitud <tamaño> supera el tamaño de búfer

C6204

Advertencia C6204: Posible saturación de búfer en la llamada a <función>: uso del parámetro sin activar <variable>

C6209

Advertencia C6209: Utilizar 'sizeof<variable> como parámetro <número> en la llamada a <función> donde <variable2> puede ser una matriz de caracteres anchos, ¿deseaba utilizar un recuento de caracteres en lugar de un recuento de bytes?

C6211

Advertencia C6211: Pérdida de memoria <puntero> debido a una excepción. Considere utilizar un bloque catch local para limpiar la memoria

C6214

Advertencia C6214: Conversión entre diferentes tipos de enteros semánticamente diferentes: HRESULT de un tipo booleano

C6215

Advertencia C6215: Conversión entre diferentes tipos de enteros semánticamente diferentes: un tipo booleano de HRESULT

C6216

Advertencia C6216: Conversión insertada por el compilador entre tipos de enteros semánticamente diferentes: un tipo booleano de HRESULT

C6217

Advertencia C6217: Conversión implícita entre tipos de enteros semánticamente diferentes: probando HRESULT con 'not'. Considere utilizar en su lugar la macro SUCCEEDED o FAILED.

C6219

Advertencia C6219: Conversión implícita entre tipos de enteros semánticamente diferentes: comparando HRESULT de 1 o TRUE. Considere utilizar en su lugar la macro SUCCEEDED o FAILED.

C6220

Advertencia C6220: Conversión implícita entre tipos enteros semánticamente diferentes: comparando HRESULT con -1. Considere utilizar en su lugar la macro SUCCEEDED o FAILED.

C6221

Advertencia C6221: Conversión implícita entre tipos enteros semánticamente diferentes: comparando HRESULT con un entero. Considere utilizar en su lugar la macro SUCCEEDED o FAILED.

C6225

Advertencia C6225: Conversión implícita entre tipos enteros semánticamente diferentes: asignando 1 o TRUE a HRESULT. Considere utilizar en su lugar S_FALSE

C6226

Advertencia C6226: Conversión implícita entre tipos enteros semánticamente diferentes: asignando -1 a HRESULT. Considere utilizar en su lugar E_FAIL

C6230

Advertencia C6230: Conversión implícita entre tipos enteros semánticamente diferentes: usando HRESULT en un contexto booleano.

C6235

Advertencia C6235: (<constante distinta de cero> || <expresión>) es siempre una constante distinta de cero

C6236

Advertencia C6236: (<expresión> || <constante distinta de cero>) siempre es una constante distinta de cero

C6237

Advertencia C6237: (<cero> && <expresión>) es siempre cero. <expresión> nunca se evalúa y puede tener efectos secundarios

C6239

Advertencia C6239: (<constante distinta de cero> && <expresión>) siempre evalúa el resultado de <expresión>. ¿Deseaba utilizar el operador AND bit a bit?

C6240

Advertencia C6240: (<expresión> && <constante distinta de cero>) siempre evalúa el resultado de <expresión>. ¿Deseaba utilizar el operador AND bit a bit?

C6242

Advertencia C6242: Un salto fuera de este bloque try fuerza el desenredo local, lo que produce una grave pérdida de rendimiento

C6244

Advertencia C6244: La declaración local de <variable> oculta la declaración anterior en la línea <línea> de < archivo >

C6246

Advertencia C6246: La declaración local de <variable> oculta la declaración del mismo nombre en el ámbito externo. Información adicional: consulte la declaración anterior en <ubicación>.

C6248

Advertencia C6248: Si establece DACL de SECURITY_DESCRIPTOR como NULL dará como resultado un objeto desprotegido

C6250

Advertencia C6250: Si llama a <función> sin el marcador MEM_RELEASE se podrá liberar memoria pero no descriptores de dirección (VAD), lo que ocasionará pérdidas de espacio de dirección

C6255

Advertencia C6255: _alloca indica un error iniciando una excepción de desbordamiento de pila. Considere utilizar _alloca_s en su lugar

C6258

Advertencia C6258: Utilizar TerminateThread no permite realizar una limpieza de subproceso correcta

C6259

Advertencia C6259: No se puede alcanzar el código etiquetado: (<expresión> y <constante>) no se puede evaluar en <etiqueta case> en una expresión switch

C6260

Advertencia C6260: sizeof * sizeof suele ser erróneo. ¿Deseaba utilizar un recuento de caracteres o un recuento de bytes?

C6262

Advertencia C6262: La función utiliza <constante> bytes de la pila: supera /analyze:stacksize<constante>. Considere mover algunos datos al montón

C6263

Advertencia C6263: Se utilizará _alloca en un bucle: esto puede provocar un rápido desbordamiento de pila

C6268

Advertencia C6268: Orden incorrecto de operaciones: (<TYPE1>)(<TYPE2>)x + y. Puede que falten paréntesis en (<TYPE1>)((<TYPE2>)x + y)

C6269

Advertencia C6269: Puede que el orden de operaciones sea incorrecto: se omitió la desreferenciación

C6270

Advertencia C6270: Falta el argumento float de <función>: agregue un argumento float correspondiente al especificador de conversión <número>

C6271

Advertencia C6271: Argumento adicional pasado en <función>: la cadena de formato no utiliza el parámetro <número>

C6272

Advertencia C6272: Valor no flotante pasado como argumento <número> cuando el valor flotante es necesario para llamar a <función>

C6273

Advertencia 6273: Valor no entero pasado como parámetro <número> cuando el entero es necesario para llamar a <función>: si se está pasando un valor de puntero, deberá utilizar %p

C6274

Advertencia C6274: Valor sin caracteres pasado como parámetro <número> cuando el carácter es necesario para llamar a <función>

C6276

Advertencia C6276: Conversión entre tipos enteros semánticamente diferentes: char * en wchar_t *. El uso de una cadena no válida puede dar lugar a un comportamiento no definido

C6277

Advertencia C6277: Nombre de la aplicación NULL con una ruta sin comillas en la llamada a <función>: dará como resultado una vulnerabilidad de acceso si la ruta contiene espacios

C6278

Advertencia C6278: <variable> está asignado con la nueva matriz [], pero se eliminará con la eliminación escalar. No se llamará a los destructores

C6279

Advertencia C6279: <variable> está asignado al nuevo escalar, pero se eliminará con la eliminación de matriz []

C6280

Advertencia C6280: <variable> está asignado a <función>, pero eliminado con <función>

C6281

Advertencia 6281: Orden incorrecto de operaciones: los operadores relacionales tienen mayor prioridad que los operadores bit a bit

C6282

Advertencia C6282: Operador incorrecto: asignación de constante en el contexto booleano. Considere utilizar '==' en su lugar

C6283

Advertencia C6283: <variable> está asignado a la nueva matriz [], pero se eliminará con la eliminación escalar.

C6284

Advertencia C6284: Objeto pasado como parámetro '% d' cuando la cadena es necesaria para llamar a <función>.

C6285

Advertencia C6285: (<constante distinta de cero> || <constante distinta de cero>) es siempre una constante distinta de cero. ¿Deseaba utilizar el operador de bit a bit AND?

C6286

Advertencia C6286: (<constante distinta de cero> || <expresión>) es siempre una constante distinta de cero. <expresión> nunca se evalúa y puede tener efectos secundarios

C6287

Advertencia C6287: Código redundante: las subexpresiones de izquierda y derecha son idénticas

C6288

Advertencia C6288: Operador incorrecto: la inclusión mutua de && es siempre cero. ¿Deseaba utilizar || en su lugar?

C6289

Advertencia C6289: Operador incorrecto: la exclusión mutua de || es siempre una constante distinta de cero. ¿Deseaba utilizar && en su lugar?

C6290

Advertencia C6290: Operación bit a bit en un resultado lógico: ! tiene mayor prioridad que &. Utilice && o (!(x & y)) en su lugar

C6291

Advertencia C6291: Operación bit a bit en un resultado lógico: ! tiene mayor prioridad que |. Utilice || o (!(x | y)) en su lugar

C6292

Advertencia C6292: Bucle For definido incorrecto: recuento de un máximo

C6293

Advertencia C6293: Bucle For definido incorrecto: recuento de un mínimo

C6294

Advertencia C6294: Bucle For definido incorrecto: la condición inicial no supera la prueba. No se ejecutó el cuerpo del bucle.

C6295

Advertencia C6295: Bucle For definido incorrecto: los valores de <variable> tienen siempre un intervalo <mín> de <máx>. El bucle se ejecuta infinitamente

C6296

Advertencia C6296: Bucle For definido incorrecto. El cuerpo del bucle sólo se ejecuta una vez

C6297

Advertencia C6297: Desbordamiento aritmético: se desplaza el valor de 32 bits y, a continuación, se convierte en un valor de 64 bits. Puede que los resultados no tengan un valor esperado

C6298

Advertencia C6298: Argumento <puntero>: se utiliza una cadena de sólo lectura como argumento de cadena modificable. Se intentará escribir en la memoria estática de sólo lectura y provocará bloqueos aleatorios

C6299

Advertencia C6299: Si compara explícitamente un campo de bits con un tipo booleano tendrá resultados inesperados

C6302

Advertencia C6302: No coincide la cadena de formato: se pasó la cadena de caracteres como parámetro <número> cuando se requiere la cadena de caracteres anchos para llamar a <función>s

C6303

Advertencia C6303: No coincide la cadena de formato: se pasó la cadena de caracteres anchos como parámetro <número> cuando se requiere la cadena de caracteres para llamar a <función>

C6305

Advertencia C6305: Las cantidades de sizeof y countof no coinciden potencialmente

C6306

Advertencia C6306: Llamada incorrecta a <función>: considere utilizar <función> que acepta va_list como argumento

C6308

Advertencia C6308: 'realloc' puede devolver un puntero nulo: se asignará un puntero nulo a <variable>, que se pasó como argumento en 'realloc', provocará que el bloque de memoria original tenga pérdidas

C6309

Advertencia C6309: El argumento <número> es nulo: éste no cumple con la especificación de la función de <función>

C6310

Advertencia C6310: Una constante no válida en el filtro de excepción puede provocar un comportamiento inesperado

C6312

Advertencia C6312: Posible bucle infinito: se utilizará la constante EXCEPTION_CONTINUE_EXECUTION en la expresión de filtro de excepciones de try-except

C6313

Advertencia C6313: Operador incorrecto: Operador incorrecto: no se puede probar el marcador con valor cero con el operador AND bit a bit. Utilice una prueba de igualdad para comprobar los marcadores con valor cero

C6314

Advertencia C6314: Orden incorrecto de las operaciones: el operador OR bit a bit tiene prioridad sobre el operador de expresión condicional. Agregue un paréntesis para clarificar la intención

C6315

Advertencia C6315: Orden incorrecto de las operaciones: el operador AND bit a bit tiene prioridad sobre el operador OR bit a bit. Agregue un paréntesis para clarificar la intención

C6316

Advertencia C6316: Operador incorrecto: la expresión probada es constante y no es cero. Utilice el operador AND bit a bit para determinar si están establecidos los bits

C6317

Advertencia C6317: Operador incorrecto: logical-not (!) no se puede cambiar por ones-complement (~)

C6318

Advertencia C6318: __try/__except definido incorrecto: uso de la constante EXCEPTION_CONTINUE_SEARCH u otra que evalúe en cero la expresión de filtro de excepciones. No se ejecutará el código en el bloque del controlador de excepciones

C6319

Advertencia C6319: El uso del operador de comas en una expresión probada hace que el argumento izquierdo se omita cuando no tiene efectos secundarios

C6320

Advertencia C6320: La expresión de filtro de excepciones es la constante EXCEPTION_EXECUTE_HANDLER. Esto puede enmascarar excepciones que no se esperaba que se controlaran

C6322

Advertencia C6322: Bloque empty _except

C6323

Advertencia 6323: Uso del operador aritmético en tipos booleanos

C6324

Advertencia C6324: Posible uso incorrecto de <función1>: ¿deseaba utilizar <función2>?

C6326

Advertencia C6326: Posible comparación de una constante con otra constante

C6327

Advertencia C6327: Posible saturación de búfer: SysAllocStringLen copia <número> caracteres de la cadena <variable> sin validar el número de caracteres que se van a copiar. Puede que se bloquee el código

C6328

Advertencia C6328: <tipo> pasado como parámetro <número> cuando <tipo> es necesario para llamar a <función>

C6331

Advertencia C6331: Parámetro no válido: no se permite pasar MEM_RELEASE y MEM_DECOMMIT junto con <función>. Esto provocará un error en la llamada

C6332

Advertencia C6332: Parámetro no válido: no se permite pasar cero como el parámetro dwFreeType en <función>. Esto provocará un error en la llamada

C6333

Advertencia C6333: Parámetro no válido: no se permite pasar MEM_RELEASE y un parámetro dwSize que no sea cero en <función>. Esto provocará un error en la llamada

C6334

Advertencia C6334: el operador sizeof aplicado en una expresión con un operador puede proporcionar resultados inesperados

C6335

Advertencia C6335: Controlador de información del proceso con pérdidas <nombre de identificador>

C6336

Advertencia C6336: El operador aritmético tiene prioridad sobre el operador de interrogación, utilice el paréntesis para clarificar la intención

C6381

Advertencia C6381: La API de cierre <función> requiere dwReason o lpMessage válido

C6383

Advertencia C6383: Saturación de búfer debido a la conversión de un recuento de elemento en un recuento de bytes: se esperaba un recuento de elemento para el parámetro <número> en la llamada a <función>

C6384

Advertencia C6384: Dividiendo el tamaño de (sizeof) un puntero por otro valor

C6385

Advertencia C6385: Datos no válidos: se obtendrá acceso a <nombre del búfer>, el tamaño de lectura son <tamaño1> bytes, pero pueden leer <tamaño2> bytes: Líneas: x, y

C6386

Advertencia C6386: Saturación de búfer: se obtendrá acceso a <nombre de búfer>, el tamaño de lectura son <tamaño1> bytes, pero pueden escribir <tamaño2> bytes: Líneas: x, y

C6387

Advertencia C6387: <argumento> puede ser <valor>: no cumple con las especificaciones de la función <nombre de función>: Líneas: x, y

C6388

Advertencia C6388: <argumento> no puede ser <valor>: no cumple con las especificaciones de la función <nombre de función>: Líneas: x, y

C6400

Advertencia C6400: Se utilizará <nombre de función> para realizar una comparación con distinción entre mayúsculas y minúsculas con la cadena de constante <nombre de cadena>. Se proporcionarán resultados inesperados en las configuraciones regionales que no estén en inglés

C6401

Advertencia C6401: Se utilizará <nombre de función> en una configuración regional predeterminada para realizar una comparación con distinción entre mayúsculas y minúsculas con la cadena de constante <nombre de cadena>. Se proporcionarán resultados inesperados en las configuraciones regionales que no estén en inglés

C6500

Advertencia C6500: Anotación no válida: el valor de la propiedad <nombre> no es válido

C6501

Advertencia C6501: Conflicto de anotación: la propiedad <nombre> entra en conflicto con la propiedad especificada anteriormente

C6503

Advertencia C6503: Anotación no válida: puede que las referencias y matrices no estén marcadas como Null=Yes o Null=Maybe

C6504

Advertencia C6504: Anotación no válida: la propiedad 'Null' únicamente se puede utilizar en valores de puntero, puntero a miembro o matriz

C6505

Advertencia C6505: Anotación no válida: la propiedad MustCheck no se puede utilizar en valores de tipo void

C6506

Advertencia C6506: Anotación no válida: la propiedad <nombre> únicamente se debe utilizar en valores de tipo de puntero o de matriz

C6507

Advertencia C6507: Conflicto de anotación: la propiedad 'Null' de Deref=0 en una condición posterior debe ser un subconjunto de la propiedad Null en la condición previa

C6508

Advertencia C6508: Anotación no válida: no se permite el acceso de escritura en los valores const

C6509

Advertencia C6509: Anotación no válida: no se puede hacer referencia a 'return' desde una condición previa

C6510

Advertencia C6510: Anotación no válida: únicamente se puede utilizar la propiedad 'NullTerminated' en búferes cuyos elementos sean de tipo de puntero o integral

C6511

Advertencia C6511: Anotación no válida: la propiedad MustCheck debe ser Yes o No

C6512

Advertencia C6512: Anotación no válida: la propiedad Null debe ser Maybe si la propiedad Valid es No

C6513

Advertencia C6513: Anotación no válida: ElementSizeConst requiere propiedades de tamaño adicional

C6514

Advertencia C6514: Anotación no válida: el valor de la propiedad <nombre> supera el tamaño de la matriz

C6515

Advertencia C6515: Anotación no válida: la propiedad <nombre> únicamente se debe utilizar en valores de tipo de puntero

C6516

Advertencia C6516: Anotación no válida: no se especificaron propiedades del atributo <nombre>

C6517

Advertencia C6517: Conflicto de anotación: no se puede especificar ValidElementsConst y ValidBytesConst en los búferes que no son de lectura

C6518

Advertencia C6518: Conflicto de la anotación: WriteableElementsConst y WriteableBytesConst no se pueden especificar en búferes que no son de escritura

C6521

Advertencia C6521: Especificación de tamaño no válida: el operador * únicamente se puede aplicar a tipos de puntero

C6522

Advertencia C6522: Especificación de tamaño no válida: la expresión debe ser de tipo integral

C6523

Advertencia C6523: Especificación de tamaño no válida: no se encontró el parámetro <nombre>

C6525

Advertencia C6525: Especificación de tamaño no válida: puede que el valor de la propiedad no sea válido

C6526

Advertencia C6526: Especificación de tamaño no válida: la expresión debe ser de tipo de puntero o de matriz

C6530

Advertencia 6530: Estilo de cadena de formato no reconocido <nombre>

C6535

Advertencia C6535: El búfer no puede ser de tipo <n>, mayor que size_t

Vea también

Conceptos

Instrucciones para escribir código seguro

Otros recursos

Analizar la calidad de código de C/C++ mediante el análisis de código