C# "variable is unitialized when used here"

Permalänk

C# "variable is unitialized when used here"

Har deklarerat char pekare, sedan gjort en switch case med en scanf som skall leta efter char pekarna i en sträng, men när jag kompilar får jag errormeddelandet "variable is unitialized when used here", koden ser ut som följer:

char *first;

case 2:
scanf("%c",&*first );

pekaren är deklarerad utanför switch casen, någon som kan tänkas veta vad jag gör fel?

Permalänk
Medlem
Skrivet av lesscool10:

Har deklarerat char pekare, sedan gjort en switch case med en scanf som skall leta efter char pekarna i en sträng, men när jag kompilar får jag errormeddelandet "variable is unitialized when used here", koden ser ut som följer:

char *first;

case 2:
scanf("%c",&*first );

pekaren är deklarerad utanför switch casen, någon som kan tänkas veta vad jag gör fel?

Que? Det där är ju inte ens c# kod..

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av lesscool10:

Har deklarerat char pekare, sedan gjort en switch case med en scanf som skall leta efter char pekarna i en sträng, men när jag kompilar får jag errormeddelandet "variable is unitialized when used here", koden ser ut som följer:

char *first;

case 2:
scanf("%c",&*first );

pekaren är deklarerad utanför switch casen, någon som kan tänkas veta vad jag gör fel?

Nu är jag ingen expert alls men är inte det C-kod?

Permalänk
Medlem

Jo, det är C som har pekare

Permalänk
Medlem

C# har https://docs.microsoft.com/en-us/dotnet/csharp/programming-gu...
men scanf() tillhör inte C#, känns mer som TS menar C/C++.

Initialisera din pekare direkt vid deklaration, men om detta av någon anledning inte går så sätt den till null.
Sen undrar jag om inte &*first borde vara *&first, kan ha fel dock, inte pysslat direkt mycket med pekare.

Permalänk
Medlem

Du måste allokera minne i förväg där scanf kan spara värdena den läser in.

char first; scanf("%c", &first);

Visa signatur

flippy @ Quakenet