Pregunta

He estado usando PC-lint9 para averiguar diferentes errores recientemente y que realmente volar mi mente, pero parece PC-lint9 no puede rastrear colgando puntero, aquí es instantánea del examen de código I con.

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

no hay error detectado por el PC-Lint. Creo que puede haber algún problema con la configuración (no me suppresss cualquier error y establecer el nivel de alerta a 3) ya que el anuncio dice: "La detección de colgado y punteros no inicializados". alguien sabe como solucionar esto?

¿Fue útil?

Solución

Es probable que el anuncio debe leerse como "Detección de algunos colgando ...". El viejo dilema entre falsos positivos y falsos negativos ...

Ahora, espero que usted piensa que es PC-pelusa va a detectar cualquier referencia colgante en absoluto, se debe detectar un tu ejemplo, que de hecho es bastante simple. Pero quizás la más estructural uno a continuación es más fácil y de hecho el único tipo detectado. ¿Podría intentarlo?

int* pkDangInt;
{
  int x;
  pkDangInt = &x;
}
( *pkDangInt ) = 1;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top