Neue Strukturen erstellen
-
Hi,
ich möchte eine Liste von Dateinamen erstellen. Nachdem ich die Anzahl der Dateinamen vom User eingelesen habe, spanne ich ein Feld dynamisch auf.
#include <stdio.h> typedef struct tagsList{ char filename[200]; } List; void main(void) { int nums; List *p_List = (List*) malloc(sizeof(List)*nums); }
Meine Frage spielt auf die Definition der Struktur an. Diese Form mit "typedef Name { ...} mName;" habe ich aus dem Internet. Wozu dient denn der Ausdruck typedef und worin besteht der Unterschied zu:
struct List{ char filename[200]; };
Vielen Dank für die Hilfe.
-
Typedef estellt ein alias für einen typ.
Ohne typedef müsstest du bei verwendung deiner liste immer struct List schreiben
zbvoid einfügen( struct List * l, int i );
mit typedef gehts auch so
void einfügen( List * l, int i );
Kurt
-
- malloc() wird nicht gecastet
- gewoehn dir bitte diese praefixnotation ab. es ist allgemein bekannt, dass sie schaedlich fuer den stil ist und mehr nachteile als vorteile hat.
-
Ich weiß leider nicht was Du meinst.
Kannst Du bitte einmal die Alternative posten. Dann werde ich mir das aneignen.
-
#include <stdio.h> #include <stlib.h> typedef struct tagsList{ char filename[200]; } List; void main(void) { int nums; List *p_List = malloc(sizeof(List)*nums); }
Kurt
-
statt p_List besser list, wobei List der typ ist.
gegen plist haette ich persoenlich auch nichts. nur eben diese unterstriche und exzessiv genutzten praefixe stoeren.
-
Meinst Du:
List *pList = malloc(sizeof(List)*nums);
Nach welchem Schema verwendest Du den Indizes? Würde mich da gerne etwas professioneller Verhalten, wenn Du mir eine gute Referenz nennen kannst.
-
indices sind in meinem sprachgebrauch die werte in eckigen klammern, mit denen ich arrays anspreche.
praefixe sind fuer mich typbezeichnungen, die nach ungarischer notation vor variablennamen gehaengt werden. ich benutze sie wenn ueberhaupt nur spaerlich und dann ohne unterstrich und auch nur, weil mir keine besseren variablennamen einfallen (schlecht).
verfolge den gegebenen link und alle weiteren links, die du finden wirst. die reise wird deinen horizont erweitern.