Frage

Ich habe PC-lint9 wurde mit kürzlich verschiedene Fehler, um herauszufinden, und es ist wirklich mein Geist wehen, aber es scheint, PC-lint9 kann nicht nachvollziehen, Zeiger baumelt, ist hier Momentaufnahme der Code I-Prüfung mit.

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

Es ist kein Fehler von PC-Lint erkannt. Ich denke, es mit der Konfiguration etwas nicht in Ordnung sein kann (ich habe keine Fehler suppresss und die Warnstufe auf 3 gesetzt), da die Werbung sagt: „Der Nachweis von baumelt und uninitialised Zeiger“. jemand weiß, wie diese zu lösen?

War es hilfreich?

Lösung

Wahrscheinlich sollte die Anzeige als "Nachweis von einige baumeln ..." zu lesen. Das alte Dilemma zwischen falsch positiven und falsch negativen ...

Nun, ich erwarte, dass Sie denken, dass ist PC-lint jede baumelt Zeiger überhaupt erkennen wird, sollte es ein Ihr Beispiel erkennen, die in der Tat ziemlich einfach ist. Aber vielleicht ist das mehr strukturelle ein unten ist einfacher und in der Tat die einzige Art erkannt. Könnten Sie es versuchen?

int* pkDangInt;
{
  int x;
  pkDangInt = &x;
}
( *pkDangInt ) = 1;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top