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

ZIR

Frischling

  • »ZIR« ist der Autor dieses Themas
  • Private Nachricht senden

1

24.03.2010, 16:57

Problem mit Kapitel 8 SAFE_DELETE

Hallo,
ich habe mich hier registriert, weil ich an einem Punkt in dem Buch nicht weiter komme. Und zwar wurde in dem letzten Abschnitt des Kapitels 8 das Makro SAFE_DELETE angesprochen es gab aber keine Beispiele wie man es benutzt, deswegen habe ich es mit diesem Code selber probiert:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>

#define SAFE_DELETE (X) {if (X!=NULL) {delete(X); X=NULL;}}

using namespace std;



int main()
{
    int *pVariable = new int;

    SAFE_DELETE (pVariable);

    return 0;

}

Bekomme aber folgende 6 Fehler:

Quellcode

1
2
3
4
5
6
1>c:\cpp\cpp\cpp\trycatchassert.cpp(13) : error C2065: 'X': nichtdeklarierter Bezeichner
1>c:\cpp\cpp\cpp\trycatchassert.cpp(13) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>c:\cpp\cpp\cpp\trycatchassert.cpp(13) : error C2065: 'X': nichtdeklarierter Bezeichner
1>c:\cpp\cpp\cpp\trycatchassert.cpp(13) : error C2065: 'X': nichtdeklarierter Bezeichner
1>c:\cpp\cpp\cpp\trycatchassert.cpp(13) : error C2541: 'delete': Objekte, die keine Zeiger sind, können nicht gelöscht werden
1>c:\cpp\cpp\cpp\trycatchassert.cpp(13) : error C2065: 'X': nichtdeklarierter Bezeichner

Kann mir irgendjemand weiterhelfen, ich meine das ich das ja eigentlich so gemacht habe wie es in dem Buch steht.
Vielen Dank schonmal im voraus.

2

24.03.2010, 17:02

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

// Zwischen SAFE_DELETE und (X) darf keine Leerzeile

#define SAFE_DELETE(X) {if (X!=NULL) {delete(X); X=NULL;}}

using namespace std;



int main()
{
    int *pVariable = new int;

    SAFE_DELETE (pVariable);

    return 0;

}

ZIR

Frischling

  • »ZIR« ist der Autor dieses Themas
  • Private Nachricht senden

3

24.03.2010, 17:04

ah danke für die schnelle antwort klappt jetzt wunderbar.

Werbeanzeige