Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 23.01.2005, 14:11 Titel: Struct-Frage |
|
|
Ich habe folgende struct funktion in meinem Programm:
Code: | typedef struct CRDSOUND_TYPE
{
char* cName;
int iID;
IDirectMusicSegment8 *pSegment;
IDirectMusicAudioPath8 *p3DPath;
IDirectSound3DBuffer8 *p3DBuffer;
} CRDSOUNDINFO; |
diese initiere ich so:
CRDSOUNDINFO m_Sounds[50];
wie kann ich es jedoch machen, wenn ich nicht weiß wieoft ich es brauche (50mal)? Kann man das zur Laufzeit irgendwie erhöhen? _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 23.01.2005, 14:22 Titel: |
|
|
Entweder du benützt Listen oder machst das z.B. so:
CPP: | CRDSOUND_TYPE* m_Sounds;
Sounds = new Sounds[anzahl];
delete[] m_Sounds; |
Wenn du dann die größe ändern willst halt ein neues erstellen und das alte löschen.
Wenn du Sound willst würde ich dir aber wirklich zu einer Liste oder besser einer Map raten. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 23.01.2005, 14:56 Titel: |
|
|
STL ist dein Freund...
Mach dich mal schlau über slist, list, vector, map...
Per Hand dynamisch Speicher anfordern und freigeben finde ich persönlich nicht so schön, ist aber möglich... |
|
Nach oben |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 23.01.2005, 15:22 Titel: |
|
|
gibt's da ein sinnvolles Buch oder Tutorial drüber GreveN? _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 23.01.2005, 15:27 Titel: |
|
|
Ich hab grad ein bisschen gegoogelt und bin auf des:
Komponenten entwerfen mit der C++ STL
Buch gestossen. Ich glaube das les ich mir auch mal durch.
edit: ok, das Buch ist glaub ich ein bisschen zu komlpex wenn man nur mit der STL anfangen will. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Zuletzt bearbeitet von PeaceKiller am 23.01.2005, 15:33, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 23.01.2005, 15:32 Titel: |
|
|
hm, naja es kommt halt immer darauf an, wie oft du das ändern wirst. Ich benutze manchmal STL und manchmal new/delete, immer das was mir gerade besser in den Kram passt. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 23.01.2005, 15:36 Titel: |
|
|
Vielleicht das hier:
http://www.josuttis.de/libbook/toc.html _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 23.01.2005, 16:39 Titel: |
|
|
In deinem konkretem Fall würde das, unter Nutzung des Vector-Containers folgendermaßen aussehen:
CPP: | //zuerst die Header mit der Vector-Deklaration einbinden, Achtung, kein .h
#include <vector>
//einen entsprechenden vector erzeugen
std::vector<CRDSOUNDINFO> m_Sounds;
//den Vector dimensionieren
m_Sounds.resize(NEW_SIZE);
//den Vector mit Werten versehen und Werte zurückgeben lassen
m_Sounds[index] = bla;
blubb = m_Sounds[index];
|
Alles klaro?
Am besten du schaust dir trotzdem mal in Ruhe die verschiedenen Container und Algos der STL an, du wirst sie noch öfters brauchen...
[Edit:] Argh, wtf funktioniert die Syntaxhervorhebung bei mir schon wieder nicht?!?
Zuletzt bearbeitet von GreveN am 23.01.2005, 17:50, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
FH Super JLI'ler
Alter: 36 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 23.01.2005, 17:13 Titel: |
|
|
Ämm. Sie Syntaxhervorhebung funzt nur, wenn du cpp-Tags nutzt, nicht die Code-Tags. Siehe die Buttons oben beim schreiben!
Also: <cpp> und </cpp>, nicht <code> und </code>...
Die "<" und ">" musst du natürlich durch "[" und "]" ersetzen.
Gruß
FH _________________ goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 23.01.2005, 17:52 Titel: |
|
|
@FH
lol, ist mir noch garnicht aufgefallen...
@Patrick
Jo, aber er wollte ja eine Art Ersatz für das Array... |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 23.01.2005, 21:56 Titel: |
|
|
Volle Zustimmung
Wenn du _wirklich_ was mit der STL anfangen willst und sie auch öfters gebrauchen willst(was ich nur empfehle), dann ist das genau das richtige Buch _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
C++Builder Senior JLI'ler
Anmeldedatum: 04.10.2003 Beiträge: 235
Medaillen: Keine
|
Verfasst am: 24.01.2005, 08:52 Titel: |
|
|
Eine gute Seite zu C++ und STL ist auch http://cplus.kompf.de
(für STL musst du mal bei "Artikel" gucken) |
|
Nach oben |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 24.01.2005, 19:35 Titel: |
|
|
Erstmal vielen Dank für die vielen Antworten. Glaub bis ich mich da durchgearbeitet habe, wird etwas dauern _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
|