Condividi tramite


Avvisi dell'analisi codice per il linguaggio C/C++

In questa sezione vengono elencati gli avvisi di analisi codice per C/C++ nell'intervallo compreso tra C6000 e C6999.

In questa sezione

Numero avviso

Descrizione

C6001

avviso C6001: utilizzo di memoria <variabile> non inizializzata

C6011

avviso C6011: risoluzione dei riferimenti del puntatore NULL <nome>

C6029

avviso C6029: possibile sovraccarico del buffer nella chiamata a <funzione>: utilizzo del valore non verificato

C6031

avviso C6031: valore restituito ignorato: <funzione> potrebbe restituire un valore imprevisto

C6053

avviso C6053: la chiamata a <funzione> non può terminare con zero la stringa <variabile>

C6054

avviso C6054: la stringa <variabile> non può terminare con zero

C6057

avviso C6057: sovraccarico del buffer a causa della mancata corrispondenza di numero di caratteri/numero di byte nella chiamata a <funzione>

C6059

avviso C6059: Parametro di lunghezza errata nella chiamata a <funzione>. Passare il numero di caratteri rimanenti, non la dimensione del buffer di <variabile>

C6063

avviso C6063: manca l'argomento stringa per <funzione> corrispondente all'identificatore di conversione <numero>

C6064

avviso C6064: manca l'argomento integer per <funzione> corrispondente all'identificatore di conversione <numero>

C6066

avviso C6066: non puntatore passato come parametro <numero> mentre nella chiamata a <funzione> è richiesto un puntatore

C6067

avviso C6067: il parametro <numero> nella chiamata a <funzione> deve essere l'indirizzo della stringa

C6200

avviso C6200: l'indice <nome> non è compreso nell'intervallo valido degli indici <min> - <max> per il buffer <variabile> non allocato nello stack

C6201

avviso C6201: sovraccarico del buffer per <variabile>, probabilmente allocato nello stack, per la chiamata a <name>: la lunghezza <min> supera la dimensione del buffer <max>

C6202

avviso C6202: sovraccarico del buffer per <variabile>, probabilmente allocato nello stack, nella chiamata a <funzione>: la lunghezza <dimensione> supera la dimensione del buffer <max>

C6203

avviso C6203: sovraccarico del buffer non allocato nello stack <variabile> nella chiamata a <funzione>: la lunghezza <dimensione> supera la dimensione del buffer

C6204

avviso C6204: possibile sovraccarico del buffer nella chiamata a <funzione>: utilizzo del parametro non verificato <variabile>

C6209

avviso C6209: utilizzo di 'sizeof<variabile1>' come parametro <numero> nella chiamata a <funzione> dove <variabile2> potrebbe essere una matrice di caratteri di tipo "wide". Si intendeva utilizzare il conteggio di caratteri invece del conteggio di byte?

C6211

avviso C6211: Perdita di memoria <puntatore> a causa di un'eccezione. Si consiglia di utilizzare un blocco catch locale per pulire la memoria

C6214

avviso C6214: cast tra tipi integer semanticamente diversi: da HRESULT a un tipo Boolean

C6215

avviso C6215: cast tra tipi integer semanticamente diversi: da un tipo Boolean a HRESULT

C6216

avviso C6216: cast inserito dal compilatore tra tipi integer semanticamente diversi: da un tipo Boolean a HRESULT

C6217

avviso C6217: Cast implicito tra tipi integer semanticamente diversi: test di HRESULT con 'not' in corso. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED

C6219

avviso C6219: Cast implicito tra tipi integer semanticamente diversi: confronto di HRESULT con 1 o TRUE in corso. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED

C6220

avviso C6220: Cast implicito tra tipi integer semanticamente diversi: confronto di HRESULT con -1 in corso. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED

C6221

avviso C6221: Cast implicito tra tipi integer semanticamente diversi: confronto di HRESULT con un integer. Si consiglia l'utilizzo della macro SUCCEEDED o FAILED

C6225

avviso C6225: Cast implicito tra tipi integer semanticamente diversi: assegnazione di 1 o TRUE a HRESULT in corso. Si consiglia l'utilizzo di S_FALSE

C6226

avviso C6226: Cast implicito tra tipi integer semanticamente diversi: assegnazione di -1 a HRESULT in corso. Si consiglia l'utilizzo di E_FAIL

C6230

avviso C6230: cast implicito tra tipi integer semanticamente diversi: utilizzo di HRESULT in un contesto Booleano

C6235

avviso C6235: (<costante diversa da zero> || <espressione>) è sempre una costante diversa da zero

C6236

avviso C6236: (<espressione> || <costante diversa da zero>) è sempre una costante diversa da zero

C6237

avviso C6237: (<zero> && <espressione>) è sempre zero. <espressione> non viene mai valutata e può avere effetti collaterali

C6239

avviso C6239: (<costante diversa da zero> && <espressione>) restituisce sempre il risultato di <espressione>. Si intendeva utilizzare l'operatore AND bit per bit?

C6240

avviso C6240: (<espressione> && <costante diversa da zero>) restituisce sempre il risultato di <espressione>. Si intendeva utilizzare l'operatore AND bit per bit?

C6242

avviso C6242: Un salto da questo blocco try impone la rimozione locale con gravi conseguenze per le prestazioni

C6244

avviso C6244: la dichiarazione locale di <variabile> nasconde la precedente dichiarazione alla riga <riga> di <file>

C6246

avviso C6246: La dichiarazione locale di <variabile> nasconde la dichiarazione con lo stesso nome in ambito esterno. Per informazioni aggiuntive vedere la dichiarazione precedente alla riga <posizione>.

C6248

avviso C6248: l'impostazione di un elenco DACL di SECURITY_DESCRIPTOR su NULL determinerà la mancata protezione di un oggetto

C6250

avviso C6250: La chiamata di <funzione> VirtualFree senza il flag MEM_RELEASE potrebbe liberare la memoria ma non i descrittori di indirizzo (VAD), con conseguente perdita di spazio

C6255

avviso C6255: _alloca indica l'errore mediante la generazione di un'eccezione di overflow dello stack. Si consiglia di utilizzare _malloca

C6258

avviso C6258: l'utilizzo di TerminateThread non consente la corretta pulizia dei thread

C6259

avviso C6259: il codice con etichetta non è eseguibile: (<espressione> & <costante>) in una espressione switch non in grado di restituire <etichetta-case>

C6260

avviso C6260: sizeof * sizeof è quasi sempre errato. Si intendeva utilizzare un conteggio di caratteri o un conteggio di byte?

C6262

avviso C6262: La funzione utilizza <costante> byte dello stack e supera /analyze:stacksize<costante>. Si consiglia di spostare dei dati nell'heap

C6263

avviso C6263: utilizzo di _alloca in un ciclo: in questo modo può verificarsi il rapido overflow dello stack

C6268

avviso C6268: Ordine errato delle operazioni: (< TIPO1 >) (< TIPO2 >) X + Y. È possibile che manchino le parentesi in (< TIPO1 >) ((< TIPO2 >) x + y)

C6269

avviso C6269: possibile ordine errato delle operazioni: risoluzione del riferimento ignorata

C6270

avviso C6270: manca l'argomento float per <funzione>: aggiungere un argomento float corrispondente all'identificatore di conversione <numero>

C6271

avviso C6271: argomento supplementare passato a <funzione>: il parametro <numero> non è utilizzato dalla stringa di formato

C6272

avviso C6272: non float passato come argomento <numero> mentre nella chiamata a <funzione> è richiesto un float

C6273

avviso 6273: non integer passato come parametro <numero> mentre nella chiamata a <funzione> è richiesto un integer: se viene passato il valore di un puntatore, utilizzare %p

C6274

avviso C6274: non carattere passato come parametro <numero> mentre nella chiamata a <funzione> è richiesto un carattere

C6276

avviso C6276: Cast tra tipi di stringa semanticamente diversi: da char * a wchar_t *. L'utilizzo di una stringa non valida può produrre un comportamento indefinito

C6277

avviso C6277: Nome di applicazione NULL con un percorso senza virgolette nella chiamata a <funzione>: questa condizione può provocare una vulnerabilità di sicurezza se il percorso contiene spazi

C6278

avviso C6278: <variabile> è stato allocato con l'operatore di matrice new [], ma eliminato con l'operatore scalare delete. I distruttori non verranno chiamati

C6279

avviso C6279: <variabile> è stato allocato con l'operatore scalare new, ma eliminato con l'operatore di matrice delete []

C6280

avviso C6280: <variabile> è stato allocato con <funzione>, ma eliminato con <funzione>

C6281

avviso 6281: ordine errato delle operazioni: gli operatori relazionali hanno precedenza maggiore degli operatori bit per bit

C6282

avviso C6282: Operatore errato: assegnazione di costante in contesto Booleano. Si consiglia di utilizzare ''=='

C6283

avviso C6283: <variabile> è stato allocato con l'operatore di matrice new [], ma eliminato con l'operatore scalare delete

C6284

avviso C6284: oggetto passato come parametro '%d' mentre nella chiamata a <funzione> è richiesta una stringa.

C6285

avviso C6285: (<costante diversa da zero> || <costante diversa da zero>) è sempre una costante diversa da zero. Si intendeva utilizzare l'operatore AND bit per bit?

C6286

avviso C6286: (<costante diversa da zero> || <espressione>) è sempre una costante diversa da zero. <espressione> non viene mai valutata e può avere effetti collaterali

C6287

avviso C6287: codice ridondante: le sottoespressioni di sinistra e destra sono identiche

C6288

avviso C6288: Operatore errato: l'inclusione reciproca con && è sempre zero. Si intendeva utilizzare ||?

C6289

avviso C6289: Operatore errato: l'esclusione reciproca con || è sempre una costante diversa da zero. Si intendeva utilizzare &&?

C6290

avviso C6290: Operazione bit per bit su risultato logico: ! ha maggiore precedenza di &. Utilizzare && o (!(x & y))

C6291

avviso C6291: Operazione bit per bit su risultato logico: ! ha maggiore precedenza di |. Utilizzare || o (!(x | y))

C6292

avviso C6292: Ciclo For definito in modo non corretto: conta in senso crescente a partire dal massimo

C6293

avviso C6293: Ciclo For definito in modo non corretto: conta in senso decrescente a partire dal minimo

C6294

avviso C6294: Ciclo For definito in modo non corretto: la condizione iniziale non soddisfa il test. Corpo del ciclo non eseguito

C6295

avviso C6295: Ciclo For definito in modo non corretto: i valori di <variabile> sono sempre compresi nell'intervallo "min" - "max". Il ciclo viene eseguito all'infinito

C6296

avviso C6296: Ciclo For definito in modo non corretto: corpo del ciclo eseguito solo una volta

C6297

avviso C6297: Overflow aritmetico: il valore a 32 bit viene spostato, quindi sottoposto a cast su un valore a 64 bit. Il risultato potrebbe non essere il valore previsto

C6298

avviso C6298: argomento <puntatore>: utilizzo di una stringa in sola lettura come argomento stringa non protetto da scrittura. Questa condizione condurrà a tentativi di scrittura nella memoria statica in sola lettura e provocherà arresti anomali casuali del sistema

C6299

avviso C6299: il confronto esplicito di un campo di bit con un tipo Boolean produrrà risultati imprevisti

C6302

avviso C6302: stringa di formato non corrispondente: stringa di caratteri passata come parametro <numero> mentre nella chiamata a <funzione> è richiesta una stringa di caratteri di tipo "wide"

C6303

avviso C6303: stringa di formato non corrispondente: stringa di caratteri di tipo "wide" passata come parametro <numero> mentre nella chiamata a <funzione> è richiesta una stringa di caratteri

C6305

avviso C6305: potenziale mancata corrispondenza tra quantità sizeof e countof

C6306

avviso C6306: chiamata a <funzione> non corretta: si consiglia di utilizzare <funzione> che accetta va_list come argomento

C6308

avviso C6308: 'realloc' può restituire un puntatore a null: l'assegnazione di un puntatore a null a <variabile>, che viene passato come argomento a 'realloc', provocherà la perdita del blocco di memoria originale

C6309

avviso C6309: l'argomento <numero> ha valore null: questa condizione non soddisfa la specifica di funzione di <funzione>

C6310

avviso C6310: una costante non valida nel filtro eccezioni può provocare comportamenti imprevisti

C6312

avviso C6312: Possibile ciclo infinito: utilizzo della costante EXCEPTION_CONTINUE_EXECUTION nell'espressione exception-filter di un try-except

C6313

avviso C6313: Operatore errato: impossibile testare un flag con valore zero con AND bit per bit. Utilizzare un test di uguaglianza per verificare i flag con valore zero

C6314

avviso C6314: Ordine errato delle operazioni: l'operatore OR bit per bit ha maggiore precedenza dell'operatore di espressione condizionale. Aggiungere delle parentesi per chiarire lo scopo

C6315

avviso C6315: Ordine errato delle operazioni: l'operatore AND bit per bit ha maggiore precedenza dell'operatore OR bit per bit. Aggiungere delle parentesi per chiarire lo scopo

C6316

avviso C6316: Operatore errato: l'espressione testata è costante e diversa da zero. Utilizzare AND bit per bit per determinare se i bit siano impostati

C6317

avviso C6317: operatore errato: l'operatore NOT logico (!) non è interscambiabile con l'operatore di complemento a uno (~)

C6318

avviso C6318: __try/__except definiti in modo non corretto: utilizzo della costante EXCEPTION_CONTINUE_SEARCH o di un'altra costante che restituisce zero nell'espressione di filtro eccezioni. Il codice nel blocco del gestore eccezioni non viene eseguito

C6319

avviso C6319: se si utilizza l'operatore virgola in un'espressione testata, l'argomento a sinistra viene ignorato se privo di effetti collaterali

C6320

avviso C6320: l'espressione di filtro eccezioni è la costante EXCEPTION_EXECUTE_HANDLER. Questa condizione potrebbe mascherare eccezioni la cui gestione non è prevista

C6322

avviso C6322: blocco _except vuoto

C6323

avviso 6323: utilizzo di un operatore aritmetico su tipi boolean

C6324

avviso C6324: potenziale utilizzo errato di <funzione1>: si intendeva utilizzare <funzione2>?

C6326

avviso C6326: confronto potenziale di una costante con un'altra costante

C6327

avviso C6327: Potenziale sovraccarico del buffer: SysAllocStringLen copia <numero> caratteri dalla stringa <variabile> senza convalidare il numero di caratteri da copiare. Il codice potrebbe arrestarsi in modo anomalo

C6328

avviso C6328: <tipo> passato come parametro <numero> mentre <tipo> è richiesto nella chiamata a <funzione>

C6331

avviso C6331: Parametro non valido: il passaggio di MEM_RELEASE insieme a MEM_DECOMMIT a <funzione> non è consentito. Questa chiamata non riuscirà

C6332

avviso C6332: Parametro non valido: il passaggio di zero come parametro dwFreeType a <funzione> non è consentito. Questa chiamata non riuscirà

C6333

avviso C6333: Parametro non valido: il passaggio di MEM_RELEASE e di un parametro dwSize diverso da zero a <funzione> non è consentito. Questa chiamata non riuscirà

C6334

avviso C6334: l'applicazione dell'operatore sizeof a un'espressione con un operatore può provocare risultati imprevisti

C6335

avviso C6335: handle di informazioni del processo con perdita di memoria <nomehandle>

C6336

avviso C6336: l'operatore aritmetico ha precedenza sull'operatore punto interrogativo. Utilizzare delle parentesi per chiarire lo scopo

C6381

avviso C6381: L'API di chiusura <funzione> richiede un dwReason o lpMessage valido

C6383

avviso C6383: sovraccarico del buffer causato dalla conversione di un conteggio di elementi in un conteggio di byte: per il parametro <numero> nella chiamata a <funzione> è previsto un conteggio di elementi

C6384

avviso C6384: divisione di sizeof di un puntatore per un altro valore

C6385

avviso C6385: dati non validi: nell'accesso a <nome buffer>, la dimensione leggibile è <dimensione1> byte, ma è possibile leggere <dimensione2> byte: Righe: x, y

C6386

avviso C6386: dati non validi: sovraccarico del buffer: nell'accesso a <nome buffer>, la dimensione non protetta da scrittura è <dimensione1> byte, ma è possibile scrivere in <dimensione2> byte: Righe: x, y

C6387

avviso C6387: <argomento> può essere <valore>: questa condizione non soddisfa la specifica della funzione <nome funzione>: Righe: x, y

C6388

avviso C6388: <argomento> non può essere <valore>: questa condizione non soddisfa la specifica della funzione <nome funzione>: Righe: x, y

C6400

avviso C6400: L'utilizzo di <nome funzione> per eseguire un confronto senza distinzione tra maiuscole e minuscole con la stringa costante <nome stringa> produce risultati imprevisti nelle impostazioni locali diverse dalle inglesi

C6401

avviso C6401: L'utilizzo di <nome funzione> in impostazioni locali predefinite per eseguire un confronto senza distinzione tra maiuscole e minuscole con la stringa costante <nome stringa> produce risultati imprevisti nelle impostazioni locali diverse dalle inglesi

C6500

avviso C6500: annotazione non valida: il valore della proprietà <nome> non è valido

C6501

avviso C6501: conflitto di annotazioni: la proprietà <nome> è in conflitto con la proprietà specificata in precedenza

C6503

avviso C6503: annotazione non valida: i riferimenti e le matrici non possono essere contrassegnati Null=Yes o Null=Maybe

C6504

avviso C6504: annotazione non valida: la proprietà 'Null' può essere utilizzata solo con valori di puntatore, puntatore a membro, matrice o tipo di riferimento

C6505

avviso C6505: annotazione non valida: la proprietà MustCheck non può essere utilizzata con valori di tipo void

C6506

avviso C6506: annotazione non valida: la proprietà <nome> può essere utilizzata solo con valori di tipo puntatore

C6507

avviso C6507: conflitto di annotazioni: la proprietà Null in Deref=0 su una postcondizione deve essere un sottoinsieme della proprietà Null sulla precondizione

C6508

avviso C6508: annotazione non valida: accesso in scrittura non consentito su valori const

C6509

avviso C6509: annotazione non valida: impossibile fare riferimento a 'return' da una precondizione

C6510

avviso C6510: annotazione non valida: la proprietà 'NullTerminated' può essere utilizzata solo con valori di tipo puntatore

C6511

avviso C6511: annotazione non valida: la proprietà MustCheck deve essere Yes o No

C6512

avviso C6512: annotazione non valida: la proprietà 'Null' deve essere Maybe se la proprietà 'Valid' è No

C6513

avviso C6513: annotazione non valida: 'ElementSize' richiede proprietà di dimensione aggiuntive

C6514

avviso C6514: annotazione non valida: il valore della proprietà <nome> supera le dimensioni della matrice

C6515

avviso C6515: annotazione non valida: la proprietà <nome> può essere utilizzata solo con valori di tipo puntatore

C6516

avviso C6516: annotazione non valida: nessuna proprietà specificata per l'attributo <nome>

C6517

avviso C6517: annotazione non valida: la proprietà ValidElementsConst e ValidBytesConst non può essere specificata su buffer non leggibili

C6518

avviso C6518: annotazione non valida: la proprietà WriteableElementsConst e WriteableBytesConst non può essere specificata come precondizione su buffer protetti da scrittura

C6521

avviso C6521: specifica di dimensione non valida: l'operatore * può essere applicato solo a tipi di puntatore

C6522

avviso C6522: specifica di dimensione non valida: l'espressione deve essere di tipo integrale

C6523

avviso C6523: specifica di dimensione non valida: parametro <nome> non trovato

C6525

avviso C6525: specifica di dimensione non valida: il valore della proprietà potrebbe non essere valido

C6526

avviso C6526: specifica di dimensione non valida: l'espressione deve essere di tipo puntatore o matrice

C6530

avviso 6530: stile <nome> della stringa di formato non riconosciuto

C6535

avviso C6535: il buffer non può avere la dimensione <n>, superiore a max(size_t)

Vedere anche

Concetti

Linee guida per la scrittura di codice protetto

Altre risorse

Verifica della qualità del codice C/C++ tramite analisi del codice