visual c++ : unsichere operation

erny92

Grünschnabel
Hi an alle!
Erstmal will ich ein herzloches Hallo loswerden, hab mich gerade registriert.
So und nun hab ich auch gleich ne frage: Ich will in einem c++-programm den Inhalt von einigen Feldindex-angaben vergleichen. Das feld ist deklariert als
--> ist also ein integer-feld. Danach noch ist jeder Feldindex mit 0 definiert. Nun geben ich ein:

if (feld [0][1] == 2) {...} ..
also will ich überprüfen, ob das feld gleich 2 ist.
Beim Kompilieren sagt mir visual c++ aber, dass dies einige unsichere operation sei,:
warning C4806: '==': unsichere Operation: kein Wert vom Typ 'bool' erweitert auf Typ 'int' kann mit der angegebenen Konstante übereinstimmen

Aber das feld ist doch integer, von daher müsste ich es doch problemlos mit zwei oder sonst einer Zahl vergleichen können, oder? Das gleiche passiert, wenn ich ein char-feld mit einer Zeichenkonstanten vergleiche.

Kann mir da jemand helfen?

Danke schonmal

Erny92
 
Hallo Erny92,

die beiden Codezeilen, die du angegeben hast, sind ok und nicht die Ursache für die Warnung. Bist du sicher, dass du "feld" nicht noch mal irgendwo anders als "bool" deklariert hast? Evt. solltest du mal etwas mehr von deinem Code zeigen.

Gruß
MCoder
 
Noch eins: Geh nicht davon aus, dass sämtliche Variablen auf vernünftige Werte (wie 0) initialisiert sind. Das sind sie nicht.

Im Debug-Modus stehen dort je nach Speichertyp (Heap/Stack) bestimmte Werte drin, in Release ist da drin, was grade im Speicher rumgelegen hat.
 
hallo..ich hatte die letzten tage leider keien rechner..also:
danke für eure antworten. eigentlich hab ich "feld" nirgendwo als bool gesetzt, hab ich nachgeschaut. Und naja..ich hab da noch ein paar if/else-strukturen, die "feld" je nach eingegebenen daten, mit 1, 2 oder Null belegen. Es sollte also auf jedenfall ein vernünftiger wert dabei raus kommem...naja..vllt hat ja noch einer ne idee..
 
Zurück