Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : structs initialisieren



gorba
05-04-2006, 09:56
hallo

habe folgendes struct:

typedef struct list{
char *symbol;
int code
} name_type;

wen ich ne variable davon anlege kann ich das ganze ja so initialisieren:
name_type blubber = { "test" , 1 };

und beim falle:
name_type *blubber ...
wie kann ich mein struct nun initialisieren?

L00NIX
05-04-2006, 11:14
*pfeif* ;)

Boron
05-04-2006, 12:21
typedef struct list {
char* symbol;
int code;
} nameType;

/********************************/
/* Rest im Code wo du magst */

char text[] = "Hallo";

/* Speicher reservieren */
nameType* blubber = malloc( sizeof(nameType) ); /* Variante in C */
/* in C++: nameType* blubber = new nameType; */

if( blubber == NULL ) {
/* Speicher anfordern schlug fehl; Fehlerbehandlung */
}

blubber->symbol = text;
blubber->code = 1234;Du musst für blubber, das ja nur ein Zeiger ist, erst mal Speicher reservieren!

Nicht vergessen diese wieder freigeben:
in C: mit free( blubber );
in C++: delete blubber;

gorba
06-04-2006, 10:44
hi boron

jo dachte ich mir auch, allerdings sage mir ein kollege, dass der speicher beim
name_type *blubber angelegt wird.
Danach hab ich mich aufn falschen weg begeben.

thx für die antwort