0

Ich habe von VS2010 zu VS2017 bewegt.Visual C++ 2017 - Abnahme Fehlerstufe

Der Code ist in VS2010 kompilierbar, löst jedoch einen Fehler in VS2017 - C4703 aus: möglicherweise nicht initialisierte lokale Zeigervariable. Es wird initialisiert.

Die schmutzige Abhilfe, die ich jetzt bin mit ist:

#pragma warning (disable:4703) 

Und alles funktioniert.

Meine Frage ist, wie das Niveau der „Pedanterie“ zu verringern oder, wie dieses Problem in einer Sicherheits Art und Weise zu lösen?

+0

Wie wäre es initialisiert Variable? Diese Warnung tritt aus einem bestimmten Grund auf. – VTT

+0

Ähm, du hast es deaktiviert. Es ist kein Fehler, nur eine Warnung der Stufe 4. Kompilieren mit/W4 in der Tat ist nicht einfach und Sie sind fast immer gezwungen, ein paar Geschwätz zu deaktivieren. Vermutlich hat bereits ein vorheriger Betreuer des Codes dies getan. Sie fügen neue Diagnosen in neuen Compiler-Releases hinzu, was auch immer er getan hat, ist wahrscheinlich nicht ausreichend./W3 ist eine vernünftige Auswahl. –

+0

Dies scheint ein [XY Problem] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) zu sein. Anstatt deinen schmutzigen Hack zu arbeiten, solltest du dein * tatsächliches Problem * posten. – nvoigt

Antwort

0

Es ist nicht zu verringern Warnstufe empfohlen.

Aber wenn Sie so tun müssen, kann es geschehen durch:

  1. Zum project properties -> C/C++ -> General -> Warning Level
  2. Set es auf einen niedrigeren Wert
+0

Wenn es nicht empfehlenswert ist, werde ich glücklich sein, es in der richtigen Art und Weise zu lösen. Aber die Variable wird initialisiert. Andere Vorschläge? –

+0

@ lar.soo es in der Regel durch Ihre Variable verursacht wird, wird nur unter bestimmten Bedingungen initialisiert werden. Das heißt, Sie haben eine Variable, die in einer 'if'-Anweisung initialisiert wird. Sie wird nur initialisiert, wenn' if 'wahr ist. Sie können Ihren Code anzeigen, der diese Warnung verursacht, damit wir sicher sein können, warum dies geschieht. –