Meh.. Hittade "felet".
Det vara bara att skriva
char* wordGuess = "";
Detta löste problemet.
Jag tycker det var lite löjligt eftersom, enlgit mig, variabeln blir tom när jag deklarerar den (eller har jag fel?).
7 svar · 948 visningar · startad av SilvioF
Jag har följande kod:
char* wordGuess;
cin >> wordGuess; // Låt användaren skriva in ett ord.
Detta ger vid kompilering inget felmeddelande, men när jag försöker köar applikationen, får jag felmeddelandet Run-Time Check Failure #3 - The variable 'wordGuess' is being used without being initialized..
Men som ni kan se så har jag tydligt deklarerat variabeln wordGuess på raden ovanför.
Någon som har något tips om vad som är fel?
Jag använder variablen i ett anrop till en funktion senare i koden, men det skall inte spela någon roll tycker jag.
Meh.. Hittade "felet".
Det vara bara att skriva
char* wordGuess = "";
Detta löste problemet.
Jag tycker det var lite löjligt eftersom, enlgit mig, variabeln blir tom när jag deklarerar den (eller har jag fel?).
Fortfarande fel! :)
char* wordGuess;
Är en pekare till en sträng. Men den pekar ingenstans.
Med koden:
char* wordGuess = "";
Så pekar pekaren på en tom sträng som bara har plats för den tomma strängen. Sedan skriver du in en större sträng som inte får plats utan skriver över det som kommer efter.
Jag skulle nog skrivit det så här:
#include <iostream.h>
#include <string>
string wordGuess;
cin >> wordGuess;
/red: Fixat så att sista exemplet stämmer.
Fortfarande fel! :)
char* wordGuess;Är en pekare till en sträng. Men den pekar ingenstans.
Fel!
Läs gärna min post en gång till så ser du att jag faktiskt nämner att den pekar på något i ett senare skede i koden, men den koden får du inte se.
Fel!
Läs gärna min post en gång till så ser du att jag faktiskt nämner att den pekar på något i ett senare skede i koden, men den koden får du inte se.
Nej, du har faktiskt fel. Du deklarerar wordGuess, men du initialiserar den aldrig (enl. ditt första inlägg). Däremot initialiserar du den när du pekar den mot en tom sträng. Det gör dock inte att GunnarD har fel! Det spelar ingen roll om du skickar med den till en funktion vid ett senare tillfälle. Följ GunnarDs råd och använd typen 'string' för att lagra strängar istället, det underlättar ditt arbete.
Aah ok.. DÅ ber jag om ursäkt. Är rätt ny på C++ och kommer från VB-världen där allt är så fruktansvärt förenklat. :(
Aah ok.. DÅ ber jag om ursäkt. Är rätt ny på C++ och kommer från VB-världen där allt är så fruktansvärt förenklat. :(
Det är ett klassiskt fel om man är ny på c/c++.
Läs gärna på hur pekare, referenser och variabler fungerar och skillnaden mellan dom, det underlättar mycket för framtida felsökning. :)
Det blev en hänga gubbe applikation.
Tydligen lyckades jag så bra att jag fick MVG på det också (går programmering A+B+C för att komplettera gymnasiebetygen med något mer än grundämnen). :D