Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Korowai

unregistriert

1

01.02.2015, 14:24

error C4703: char* text nicht initialisiert

Hi,

habe ein Problem mit einer nicht initialisierten Zeigervariable:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static char* textFileRead(const char *fileName) 
{
char* text;

if (fileName != NULL) {
FILE *file = fopen(fileName, "rt");

if (file != NULL) {
fseek(file, 0, SEEK_END);
int count = ftell(file);
rewind(file);

if (count > 0) {
text = (char*)malloc(sizeof(char) * (count + 1));
count = fread(text, sizeof(char), count, file);
text[count] = '\0';
}
fclose(file);
}
}
return text;
}

Das ist ein von der Website Swiftless erstelltes Tutorial.
Kann mir da jemand helfen?

Danke

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »TrikkieMikkie« (01.02.2015, 14:44)


2

01.02.2015, 14:28

Was ist jetzt das Problem? Für Code benutze bitte die Code-Tags

3

01.02.2015, 14:35

Die Fehlermeldung sagt dir doch was zu tun, text ist nicht Initialisiert, es ist nur deklariert!
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Korowai

unregistriert

4

01.02.2015, 14:45

Ich habe von Swiftless die Tutorial- Reihe zu OpenGL angefangen.

Der Compiler meldet folgenden Fehler:

Fehler 2 error C4703: Die möglicherweise nicht initialisierte lokale Zeigervariable 'text' wurde verwendet. e:\tutorials_opengl\swiftless_tutorials\2\swiftless_2\swiftless_2\shader.cpp 28 1 Swiftless_2

Leider weiß ich noch nicht, wozu der oben gepostete Code Schnipsel:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static char* textFileRead(const char *fileName) 
{
    char* text;
    
    if (fileName != NULL) {
        FILE *file = fopen(fileName, "rt");
        
        if (file != NULL) {
            fseek(file, 0, SEEK_END);
            int count = ftell(file);
            rewind(file);
            
            if (count > 0) {
                text = (char*)malloc(sizeof(char) * (count + 1));
                count = fread(text, sizeof(char), count, file);
                text[count] = '\0';
            }
            fclose(file);
        }
    }
    return text;
}


dient. Meine HOffnung war, dass sich das aus dem Tutorial irgendwann erkennen lässt. Da ich aber nun in diesem COde mit einem Fehler konfrontiert werde, komme ich leider nicht weiter.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »TrikkieMikkie« (01.02.2015, 14:47)


5

01.02.2015, 14:47

...benutze bitte die Code-Tags

Bitte darum!
Hab das schon zum ?-ten mal für dich erledigt, Korowai.

Code markieren und C++ anklicken, fertig.

Danke!
fka tm

6

01.02.2015, 15:02

Die Fehlermeldung sagt dir doch was zu tun, text ist nicht Initialisiert, es ist nur deklariert!


http://lmgtfy.com/?q=deklaration+initialisieren

Vielleicht solltest du auch mal die tutorial reihe wechseln, scheint keine gute zu sein wenn man da ständig mit Fehlern konfrontiert wird.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Korowai

unregistriert

7

01.02.2015, 15:02

O.K.,

ich versuche es in Erinnerung zu behalten, die Code Tags zu benutzen.

Von Zeigern weiß ich nur, dass diese eine Adresse einer Variablen anzeigen und sich dann über die Adresse auch der Wert ändern lässt.

Man definiert die Variable, dann initialisiert man den Zeiger.

Ich habe schon versucht, dem char text den Wert NULL zuzuweisen.

Dann bekomme ich aber die Meldung:

Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_wWinMain@16" in Funktion "___tmainCRTStartup". E:\Tutorials_OpenGL\swiftless_Tutorials\2\Swiftless_2\Swiftless_2\MSVCRTD.lib(wcrtexew.obj) Swiftless_2

und

Fehler 3 error LNK1120: 1 nicht aufgelöste Externe E:\Tutorials_OpenGL\swiftless_Tutorials\2\Swiftless_2\Debug\Swiftless_2.exe 1 1 Swiftless_2

Es ist eine Windows Anwendung, das habe ich nochmal nachgeschaut.

8

01.02.2015, 15:06

Schau dir den Fall an, dass fileName NULL ist. text wird dann nicht initialisiert zurückgegeben.

Edit:

Zitat

Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_wWinMain@16" in Funktion "___tmainCRTStartup". E:\Tutorials_OpenGL\swiftless_Tutorials\2\Swiftless_2\Swiftless_2\MSVCRTD.lib(wcrtexew.obj) Swiftless_2

Du hast keine oder eine Falsche WinMain Funktion, bzw. ein Fensterbasiertes Projekt, statt einer Konsolenanwendung als Projekttyp.
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »iSmokiieZz« (01.02.2015, 15:18)


Korowai

unregistriert

9

01.02.2015, 15:34

Habe sowohl Windows als auch Konsole eingestellt. Beides kompiliert. Bei beidem die oben genannte Fehlermeldung.

Hmmm...

10

01.02.2015, 15:53

Dann ist deine winmain nicht da oder falsch ;)
Wie sieht sie denn bei dir aus?

In beiden prohekttypen kann nicht der selbe Fehler auftreten.
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

Werbeanzeige