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

11

23.02.2009, 16:59

Bezug auf den Beitrag:Da hast ein Beispiel: ... von david_pb

Hi! Ich habe da noch ein paar Unklarheiten bei oben genannten Beitrag!

Was ist das denn eigentlich ?

C-/C++-Quelltext

1
 static const char* data[] = ...

Ich kenne wohl

C-/C++-Quelltext

1
char* pData;

was ja einen Zeiger auf einen char Wert erzeugt aber was bedeutet denn dann

C-/C++-Quelltext

1
char* data[] = ...
Wird da ein Array mit lauter Zeigern auf die einzelnen Zeichen erzeugt? Und wieso kann man dann hier

C-/C++-Quelltext

1
buffer[index].Char.AsciiChar= data[y][x];
darauf zugreifen wie auf ein 2 Dimensionales Array? Wobei der CHAR_INFO buffer doch auch nur eindimensional ist?
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

23.02.2009, 17:13

Hi,

char* data[] definiert ein Array mit Zeigern auf chars. Das kann ein char sein oder auch mehrere, deswegen kann man data als 2 "dimensionales" Array auffassen und verwenden.

CHAR_INFO buffer ist ein normales Array aus CHAR_INFOs. Die x und y Position, die ein Zeichen in data adressieren können über y*pufferbreite+x für das 1 dimensionale Array umgerechnet werden (siehe die Zeile darüber).

13

23.02.2009, 20:06

Zitat von »"Chase"«

C-/C++-Quelltext

1
 WriteConsoleOutputA( hConOut, const_cast<const CHAR_INFO*>(&buffer[0][0]), bufferSize, upperLeft, ConScrBufReg );
const_cast braucht man nur, wenn man CV-Qualifizierer entfernt, nicht, wenn man sie hinzufügt. Aber in fast allen Fällen ist const_cast zu vermeiden, da es meist einen schweren Designbruch impliziert.

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

14

23.02.2009, 21:48

Ahh sorry. Ich hab mal gelesen const-casts sind tolerierbar wenn man von einer Funktion genau weiss dass sie nichts an einem Parameter veraendert, aber der trotzdem keinen const-qualifierer hat.
Hier wars natuerlich genau andersrum.
"Have you tried turning it off and on again?"

15

24.02.2009, 14:33

Hier ein Bild das ich mit WriteConsoleOutputA erzeugt habe. Das soll mal ein Pacmanspiel werden! :)

(Link)
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

16

24.02.2009, 14:41

@Andreas2: ein kleiner tipp: mit alt + druck kannst du nur das aktive fenster kopieren erspart die zuschneiden und hässliche ränder ;).

17

24.02.2009, 15:28

:D Toller Tip - Danke!
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

Werbeanzeige