Domanda

Sto usando PC-lint9 per scoprire diversi errori di recente e davvero soffiare la mia mente, ma sembra PC-lint9 non può tracciare penzoloni puntatore, ecco un'istantanea dell'esame codice che ho con.

int* pkInt = new int;
int* pkDangInt = pkInt;
delete pkInt;
( *pkDangInt ) = 1;

non c'è nessun errore rilevato dal PC-Lint. Penso che ci possa essere qualcosa di sbagliato con la configurazione (non ho suppresss alcun errore e impostare il livello di allarme a 3) dal momento che la pubblicità dice: "Rilevazione della penzoloni e puntatori non inizializzate". qualcuno sa come risolvere questo?

È stato utile?

Soluzione

Probabilmente la pubblicità deve essere letto come "Rilevazione della alcuni penzoloni ...". Il vecchio dilemma tra falsi positivi e falsi negativi ...

Ora, mi aspetto che si pensa che sia PC-lint ha intenzione di rilevare qualsiasi puntatore penzoloni a tutti, dovrebbe rilevare un tuo esempio, che è davvero piuttosto semplice. Ma forse il più strutturale una sotto è più facile e in effetti l'unico tipo rilevato. Potresti provare?

int* pkDangInt;
{
  int x;
  pkDangInt = &x;
}
( *pkDangInt ) = 1;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top