Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » nested structs

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
19.03.2004, 14:12 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich habe mir gerade das Kapitel nested structs & Arrays durchgelesen und wollte eine Übung dazu machen - ne mini Datenbank

C++:
enum TYPES { INT, CHAR };
struct attribute
{
   int typ;
   char header[255];
};
struct table
{
   void *ptr[0][0];          
   char name[255];          
   struct attribute attr[0];
};
struct db
{
   struct table tab[0];    
   char name[255];        
};


ptr sollte ein 2d Array sein, welches die Daten speichert. tab sollte alle Tabellen speichern.
Nun mein Problem: Wie kann ich realloc auf ptr oder tab anwenden? Kann man das nur mit verketten Listen lösen?

Danke im Voraus!!!
mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.03.2004, 01:27 Uhr
virtual
Sexiest Bit alive
(Operator)


Out of data.
Don't known how to handle unrecognized token "ptr".
Giving up.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.03.2004, 11:36 Uhr
mike
Pinguinhüpfer
(Operator)


I know. "void *ptr[0][0];" ist mehr als nur falsch *g* Ich versuche es grade mit unions - aber das ist für meine Verhältnisse auch etwas kompliziert

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.03.2004, 12:03 Uhr
Pablo
Supertux
(Operator)



Zitat:
mike postete
ptr sollte ein 2d Array sein, welches die Daten speichert. tab sollte alle Tabellen speichern.


aber prt ist schon 3 Mal dim.
Guck mal hier
www.fun-soft.de/showtopic.php?threadid=4351&time=1079742373


C++:
struct table
{
   void** ptr;

...



Und um zu initialisieren:

C++:
int x=10, y=20,i;
// zb. wir wollen ints speichern
ptr = (int**) malloc(sizeof(int*)*x);
if (ptr==NULL) ...
if (i=0; i<x; ++i) {
    ptr[i]=(int*) malloc(sizeof(int)*y);
    if (ptr[i]==NULL) ...
}


....
// zum löschen
for(i=0; i<x; ++i)
    free(ptr[i]);
free(ptr);


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 20.03.2004 um 12:05 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.03.2004, 14:33 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Thx für dein Sample. So ein ähnliches Sample habe ich auch ihn meinem Buch. Aber wie kann ich da jetzt einen void Pointer verwenden, um z.B. eine Spalte mit ints und eine Spalte mit floats zu machen? Kann ich da ein unio/struct verwnden?

Danke nochmals!!
mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.03.2004, 15:06 Uhr
Pablo
Supertux
(Operator)


Was meinst du damit?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.03.2004, 15:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Was du brauchst ist union....
du willst ja das deine felder verschiedene datentypen aufnehmen kann. in einer union wird immer automatisch der speicher verwendet des grössten datentyps aus der union. wenn du also ein char ein short und ein int erlauben willst würde sizeof(int) an speicher vorgehalten werden auch wenn du nur ein char verwendest...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.03.2004, 16:08 Uhr
mike
Pinguinhüpfer
(Operator)


Ok. Dann probier ichs mal mit Union. Das wird heute noch ne lange Nacht (werde Windalf wieder mit ICQ Nachrichten bombadieren - starte dein Win vorsichtshalber noch mal neu )

mfg
--

Dieser Post wurde am 20.03.2004 um 16:10 Uhr von mike editiert.
 
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: