Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Dynamischer Speicher bei Strukturen???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.03.2006, 08:49 Uhr
~Anfänger....
Gast


Hallo, habe folgendes Probem:

Ich habe eine Struktur definiert, und zwar folgendermaßen:


C++:
struct point {
    float x, y, z;
};
struct uv {
    float u,v;
};
struct normalpoint {
    float x, y, z;
};
struct normal {
    float x,y,z;
};
struct triangle {
    point *punkt[3];
    uv *uvcoord[3];
    normalpoint *normp[3];
    normal *normal;
};
struct texture {
    bool hasTex;
    char *url;
};
struct material {
    float diffuseColor[3];
    float ambientIntensity;
    float specularColor[3];
    float shininess;
    float transparency;
};
struct object {
    char *name;
    triangle *triangle;
    texture *texture;
    material *material;
};
struct model {
    object *object;
};



Keine Ahnung in Wahrheit, ob das mal so stimmt.
Wenn ich dann zum Test ein model erstelle mit: "model test;" ust alles in Ordnung.
Ok, dann hab ich folgendes Problem:
Wie kann ich festlegen, dass dieses "model" jetzt zB aus 2 object Objekten besteht???
Ihr wisst schon - ich würde das "object *object;" sozusagen als ein Array mit einer Länge haben, die erst nach einlesen einer Datei feststeht.

Ich hoffe ihr könnt mir helfen und dass ihr überhaupt versteht was ich meine.
Wenn ich das mit mehreren Obekten habe, kann ich dass dann auch auf die "Anzahl der Triangles pro Objekt" auch anwenden???


hab folgendes probiert, um zB 2 Objekte im model zu erhalten:


C++:
Objekte = 2; //wir aber im Programm ermittelt....
model test; //ein Model soll erstellt werden....
test.object = new (nothrow) int[Objekte];



Oder geht sowas gar nicht/ganz anders??

Bin dankbar für jedes Kommentar (bin noch ziemlicher C++ Noob, will das aber ändern, schreibe gerade einen eigenen kleinen VRML Loader..... )

MfG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.03.2006, 10:19 Uhr
ao

(Operator)



Zitat von ~Anfänger....:
Bin dankbar für jedes Kommentar (bin noch ziemlicher C++ Noob, will das aber ändern, ...

Hallo,

dringende Empfehlung: Lass diese ganzen C-Style-Arrays weg, gerade Anfänger machen dabei haufenweise Fehler und investieren kiloweise Nerven in eine funktionierende Speicherverwaltung - die totale Verschwendung.

Verwende stattdessen C++-Containerklassen, die bringen die Speicherverwaltung mit und sind weitestgehend bugfrei. Und in der Performance stehen sie einer robusten (!) Eigenimplementierung wahrscheinlich in nichts nach, im Gegenteil, die Dinger werden von Experten gemacht, die robusten *und* schnellen Code schreiben können.

Man muss zwar anfangs ein bisschen lesen und sich einarbeiten, aber das zahlt sich schnell aus.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.03.2006, 10:31 Uhr
~Anfänger....
Gast


Ja, würde ich ja machen, nur hab ich eben nicht viel Ahnung, ich lies shcon seit Tagen Tutorials usw. durch, aber ich komm nicht drauf, wie ich weiter machen soll....

Also abgesehen von meinen c und c++ Vermischungen (so hab ichs verstanden ):

Wie kann man sowas machen, wie oben beschrieben??
Ich will im Endeffekt sozuagen allen Daten meiner Datei in "model" speichern - also alle Objekte, deren Materialen/oder Texturen,, sowie alle Punkte, Normalen, Dreiecke...... alles eben .

Ich weiß eben nicht, obs hier ausreicht eine Struktur zu definieren, wie oben (aber das funzt irgendwie nicht, so wie ich mir das vorstelle.....) oder eine Klasse zu schreiben, in der alle möglichen Funktionen für das Hinzufügen eines Objekts drinnen sind usw......

Wenn 1. funktioneren kann wäre ich sehr froh über einen Tipp, wie ich ein model "test" dazu bringen kann, dass es merkt, es besteht aus 2 objekten, und dann für jedes objekt wieder 3ecke hinzufügen usw...............

Ich hoffe es ist klar was gemeint ist......

Oder doch klassen??
Aber da kenn ich mich noch nicht aus - muss mir das mal ansehen, wenn 1. nicht funktioniert.

Danke im Voraus und lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.03.2006, 11:09 Uhr
ao

(Operator)



Zitat von ~Anfänger....:
Ja, würde ich ja machen, nur hab ich eben nicht viel Ahnung, ich lies shcon seit Tagen Tutorials usw. durch, aber ich komm nicht drauf, wie ich weiter machen soll

Aber nur so gehts. Wer programmieren will, muss wissen, was er tut. Wenn du ohne Ahnung drauflos programmierst, kommt nur Murks dabei heraus.

Du hast C++ zur Verfügung, also nutz es aus. Schmeiß deine Strukturen und C-Style-Arrays weg, die werden dir sonst noch Kummer bereiten. Verwende Klassen und Container. Wenn dir das noch nichts sagt, dann arbeite zuerst ein Grundlagenprogramm durch, z.B. das hier: www.fun-soft.de/Download/ebooks/c++in21tagen/inhalt.html

Lies keine C-Bücher, wenn du C++ lernen willst, du kommst nur auf falsche Gedanken.

Ich verstehe gut, dass du nach längerem Lesen endlich anfangen willst. Aber du musst Ausdauer haben, auch beim Recherchieren und Lernen, das ist beim Programmieren eine ganz wichtige Eigenschaft. Und wenn du dir eingestehen musst, dass du bisher das Falsche gelesen hast, dann ist das kein Grund, jetzt blind loszuhacken.

Viel Erfolg, und lass dich nicht unterkriegen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.03.2006, 11:12 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.03.2006, 11:26 Uhr
~Anfänger.....
Gast


Ja, ich werds mir mal durchlesen (deinen Link)....
Ich hoffe doch, dass ich das schaffe .

Also dein Tipp: Klassen und Container!??
sehr gut, werds mir mal ansehen.

Danke noch mals für die Tipps!
MfG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.03.2006, 12:02 Uhr
ao

(Operator)



Zitat von ~Anfänger.....:
Also dein Tipp: Klassen und Container!??

Für die Modellstruktur, ja. Ansehen sollst du dir alles, was mit C++ zusammenhängt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
24.03.2006, 12:10 Uhr
~Anfänger.....
Gast


Ja, mache ich, klaro!!!
Wenn ich noch Fragen habe, bei denen ich nicht weiterkomme, melde ich mich wieder

Lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: