Forum: PC-Programmierung Zeiger auf Zeiger und Freigabe


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mike (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin zusammen,
ich habe ein Framework, in dem ich SDL_CreateRenderer aufrufe und die 
Adresse in einem Zeiger m_pRenderer speicher. An einem anderen Ort rufe 
ich mein Framework-Renderer auf und speichere diesen in einer zweiten 
Member m_pSpriteRenderer. Das heißt, ich habe einen Zeiger auf einen 
Zeiger, da ich ja nicht das Objekt hole sondern lediglich einen Zeiger 
darauf oder?

Also darf ich m_pSpriteRenderer auch nicht freigeben, da die Adresse des 
Zeigers im Framework auch freigegeben wird korrekt? Ich müsste also im 
Framework m_pRenderer einfach freigeben, wenn ich das richtig verstehe.

von Rolf M. (rmagnus)


Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> Das heißt, ich habe einen Zeiger auf einen Zeiger, da ich ja nicht das
> Objekt hole sondern lediglich einen Zeiger darauf oder?

Du musst dich schon entscheiden: Entweder hast du einen Zeiger auf das 
Objekt oder einen Zeiger auf einen Zeiger auf das Objekt.

> Also darf ich m_pSpriteRenderer auch nicht freigeben, da die Adresse des
> Zeigers im Framework auch freigegeben wird korrekt? Ich müsste also im
> Framework m_pRenderer einfach freigeben, wenn ich das richtig verstehe.

Du hast genau ein SDL_Renderer-Objekt, also kannst/darfst du das auch 
nur genau einmal freigeben, unabhängig davon, wieviele Zeiger du 
darauf hast.

von Borislav B. (boris_b)


Bewertung
-1 lesenswert
nicht lesenswert
Genau dafür hat der liebe Gott den Smart-Pointer erfunden :-)

von nicht"Gast" (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Borislav B. schrieb:
> Genau dafür hat der liebe Gott den Smart-Pointer erfunden :-)

In C?

von Fritz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
nicht"Gast" schrieb:
> Borislav B. schrieb:
>> Genau dafür hat der liebe Gott den Smart-Pointer erfunden :-)
>
> In C?

Für C wären das aber komische Variablennamen ("m_" kennzeichnet 
normalerweise Membervariablen).

von nicht"Gast" (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Fritz schrieb:
> Für C wären das aber komische Variablennamen ("m_" kennzeichnet
> normalerweise Membervariablen).

Kann sein, muss aber nicht. Viele Leute übernehmen irgend einen Schrott, 
weil sie denken, das ist cool und muss so gemacht werden.

Wenn er C++ programmiert, warum dann nicht SFML?

Die Warscheinlichkeit, dass er C++ programmiert ist nicht gering, aber 
wissen kann man es nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.