Visual C++ - Laufzeit-Check Failure #3 - Variablen ist nicht initiliazed
Verwende ich Visual C++ 2010 Express Edition zum kompilieren und ausführen der .exe-Dateien, die ich zu schreiben in der Programmiersprache C++. Ich bin versucht, erstellen Sie eine loop-basierte Logik mit C++ um den Benutzer zu Fragen, wie viele Einträge er wählt, um zu geben, Fragen zu stellen und sich darauf beschränkt, Nein. der Einträge. Zum Beispiel möchte ich die Ausgabe: "wieviele Zeichen wollen Sie eingeben?: "Sagen Sie, der Benutzer gibt die Antwort als '3' gespeichert, die in der int-Variablen 'Einträge'. Dann möchte ich halten, die Frage 3 mal, bevor es Stoppt und fährt mit der nächsten Zeile des Codes. Ich hoffe, Sie verstehen, hier ist ein code-block, um zu demonstrieren, was ich Tue:
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "How many values do you need to enter?: ";
int entries;
cin >> entries;
int offset, number;
string valueName[50];
float valueValue[50];
for (offset = 0; offset < entries; offset++)
{
cout << "Enter " << number << " Value Name: ";
cin >> valueName[offset];
cout << "Enter " << valueName[offset] << "\'s value: ";
cin >> valueValue[offset];
for (number = 1; number <= entries; number++)
{
}
}
char response;
cin >> response;
return 0;
}
Seltsam, wenn ich dieses einfache Programm, es schlägt fehl, wenn ich geben Sie den Wert ein name eingefügt werden, in der das 0. element den Wert [] - array. Es ist nur pausiert die Ausführung des Programms, und ein Dialogfeld öffnet sich sagen "Runtime-Check Failure #3 - Variablen 'Zahl' wird benutzt, ohne initialisiert!" Ein weiteres problem in Bezug auf dieses Programm ist, dass seit einiger Zeit, bei mir lief das Programm dieses "Runtime-Check Failure #3" - box erschien nie, und wenn er sich nicht der number-Wert ging schief, und begann zuerst mit 1 und dann für die next-Schleife gesprungen, um 6, und dann wiederholt 6 wieder für die nächste Schleife!
Bitte helfen Sie mir! Ich habe online überprüft, zum scheuern, dieses problem überall, aber es gilt nicht nur für meine Art von problem!
Ist es, weil die Variablen sind außerhalb des gültigen Bereichs?
Aber Sie sind deklariert, die außerhalb der for-Schleifen richtig?
So bitte helfen Sie mir!
- Wenn etwas out of scope, der compiler ist nicht glücklich. Wenn Sie run-time-Fehler, das heißt, Sie übergeben die Zusammenstellung phase. Syntaktisch alles richtig ist.
- Wenn Sie in den debugger unterbrechen, wenn Sie erhalten diese Nachricht, landet Sie direkt auf die Zeile mit der nicht initialisierten variable. Auch das bauen sollte Ihnen eine Warnung:
warning C4700: uninitialized local variable 'number' used
All dies sagt Ihnen genau, was und wo das problem ist. - vielen Dank Mahesh und Michael Burr für deine Einsichten, gerne bin ich Ihnen sagen, Jungs, dass das problem wurde gelöst, Dank Ihnen und allen anderen Zusammenarbeit. Ich danke Ihnen sehr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Laufzeit ist Ihnen zu sagen die Wahrheit, die folgende Zeile kommt, nachdem Sie erklärt haben, eine Zahl als int haben aber nicht einen Wert.
In Ihrem code deklarieren Sie die folgenden Schritte in der C++ - das heißt, geben Sie mir 2 ints, aber die Werte sind noch nicht definiert, z.B.
Ändern Sie ihn auf etwas wie dieses ..
Dem Sie drucken, die variable
number
ohne dass es zuerst, D. H. es ist nicht initialisierte. Wenn es Drucke sind einige Zufallszahlen, es ist, weil, dass was passiert sein in der Erinnerung an die Zeit, die Sie das Programm ausführen. Einen Wert zuweisen, bevor Sie es verwenden.Das problem ist, genau die Fehlermeldung, die Sie bekommen. Du verwendest die variable Anzahl ohne es zu initialisieren.
Verwenden Sie die variable genau hier, an der Spitze der Schleife, wenn es noch nicht initialisiert wurde, um alles noch:
Was ist deine Absicht mit der Anzahl Variablen? Es scheint nicht wirklich zu dienen irgendeinem Zweck. Wenn Sie drucken möchten, welche Eintrag, den Sie sich zurzeit befinden, können Sie mit der offset variable stattdessen so:
Aber das scheint immer noch ein wenig unklar für mich.
Aber der Grund, dass Sie ein problem ist, weil der Wert nicht initialisiert ist, so dass Sie erleben nicht definiertes Verhalten. Dies ist auch der Grund, warum Visual Studio nicht immer zu fangen; es wird wahrscheinlich immer im Debug-Modus, aber in den Release-Modus wird fast nie befallen. Sie müssen initialisiert alle Variablen, bevor Sie Sie verwenden.
In meinem Fall war es, weil ein
extern
variable deklariert wurde zweimal.