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

DarkFitzi

Alter Hase

  • »DarkFitzi« ist der Autor dieses Themas

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

1

25.09.2005, 17:47

Need Help @ Kapitel 2.6

Hi :huhu: :huhu:
hab ein kleines Prob im Beispielprogramm Nummer 4: Texturen
Das Programm läuft bereits richtig doch nun möchte ich, dass die Anzahl der Dreiecke nich voreingestellt ist, sonder per Zufall erzeugt wird:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
//So nicht:


/****************************************************************************************************/
/* Globale Variablen */
const int           g_iNumTriangles = 1024;     //Anzahl der darzustellenden Dreiecke

STriangle           g_aTriangles[g_iNumTriangles];  //Array für alle Dreiecke

SDirect3DParameters g_Direct3DParameters;       //Struct für Daten zum Initialisieren für Fenster und D3D

float               g_fTime = 0.0f;             //Globale Zeit-Variable

PDIRECT3DTEXTURE9   g_pTextur = NULL;           //Pointer für die Textur


Wenn ich nun die Variable g_iNumTriangles mit tbIntRandom initialisiere, dann bekomme ich 2 Fehler. Eigentlcih müsste es doch problemlos funktionieren !!! ???

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
//Müsste gehen:


/****************************************************************************************************/
/* Globale Variablen */
const int           g_iNumTriangles = tbIntRandom(16,4096); //Anzahl der darzustellenden Dreiecke (zufällige Zahl zwischen 16 und 4096)

STriangle           g_aTriangles[g_iNumTriangles];          //Array für alle Dreiecke

SDirect3DParameters g_Direct3DParameters;           //Struct für Daten zum Initialisieren für Fenster und D3D

float               g_fTime = 0.0f;                 //Globale Zeit-Variable

PDIRECT3DTEXTURE9   g_pTextur = NULL;               //Pointer für die Textur

Die Fehler:

C-/C++-Quelltext

1
2
c:\Dokumente und Einstellungen\DarkFitzi\Eigene Dateien\Visual Studio-Projekte\tbTextur\tbTextur.cpp(47): error C2057: Konstanter Ausdruck erwartet
c:\Dokumente und Einstellungen\DarkFitzi\Eigene Dateien\Visual Studio-Projekte\tbTextur\tbTextur.cpp(47): error C2466: Reservierung eines Arrays der konstanten Größe 0 nicht möglich


Wo ist da der Fehler? denn im Programm kann er eigentlich nicht sein, da es bei der ersten Variante funktioniert.
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

25.09.2005, 18:08

Wenn Du ein Array deklarierst, muss der Compiler die Größe schon zur Kompilierzeit bestimmen können. Wenn die Größe erst zur Laufzeit bekannt ist, kannst Du new verwenden. std::vector geht auch.
Scheinbar hast Du noch sehr wenig Erfahrung mit C++, darum empfehle ich Dir, erst einmal ein Buch über C++ zu lesen.

DarkFitzi

Alter Hase

  • »DarkFitzi« ist der Autor dieses Themas

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

3

25.09.2005, 19:41

Danke @ David
:ola:
habe bereits 2 bücher über c++ grundlagen gelesen und hab vor einer woche mit deinem Buch angefangen. Wusste halt des mit dem Array und zur Laufzeit nicht ... aber dafür ist ja ein Forum da ;p

THX für den schnellen Support und :zoum: :prost: :zoum:
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

Werbeanzeige