WinFuture-Forum.de: (gelöst) C - Malloc() An Structure Anwenden - Wie Ist Die Syntax? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

(gelöst) C - Malloc() An Structure Anwenden - Wie Ist Die Syntax?


#1 Mitglied ist offline   Astorek 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.145
  • Beigetreten: 28. Juli 07
  • Reputation: 42
  • Geschlecht:Männlich

geschrieben 11. April 2008 - 13:33

Hi @ all,

Tjoar, bin kurz davor ein klein wenig auszuflippen. Nichtmal Google bringt vernünftige Antworten...

Angenommen, ich möchte Speicher während der Laufzeit eines Programms vergrößern, dann brauche ich ja die malloc()-Funktion. Ein Beispiel:
int *p = (int *)malloc(sizeof(int));
Folgendes Problem: Was muss ich tun, damit ich denselben Effekt bei einer Structure erreiche?

Angenommen, ich hätte folgende Structure:
struct daten
{
  char *name;
  char *vorname;
  int *peronalnummer;
};
Nun möchte ich eben diese Structure in ein Array - sagen wir, mit dem Namen "liste" - packen. Was muss ich tun, damit ich das erreiche?

Sowas funktioniert ja leider nicht...
void p=malloc(sizeof(struct fewo));


Jemand eine Idee?

(Und kommt mir nicht mit "struct daten liste[1000];" :wink: . Im Ernst^^. Der ganze Speicher muss leider zur Laufzeit erzeugt werden, weshalb ich überhaupt auf malloc() zurückgreifen muss...)

Normalerweise bin ich ein geduldiger Schüler, der auch Handbücher & Co. liest und auch sonst keine "Hau-Sauf-Gaben"-Threads aufmacht. Aber nach 2 Stunden komm ich ums Verrecken immer noch nicht auf die Lösung...

Oder habe ich irgendwo den totalen Denkfehler drin und gehe die Sache ganz falsch an?

Need Help! Im Voraus schonmal Danke für eure Hilfe! :D

Dieser Beitrag wurde von Astorek bearbeitet: 12. April 2008 - 01:22

0

Anzeige



#2 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 11. April 2008 - 15:31

Hi,

warum machst du das nicht einfach so?

struct daten *p;

p = (struct daten *)malloc(sizeof(struct daten));


Und falls du ein Array brauchst, kannst du ja das sizeof(...) noch mit der benötigten Elementezahl multiplizieren.

Gruß,
Stefan
0

#3 Mitglied ist offline   Astorek 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.145
  • Beigetreten: 28. Juli 07
  • Reputation: 42
  • Geschlecht:Männlich

geschrieben 12. April 2008 - 01:22

Beitrag anzeigenZitat (Diewie: 11.04.2008, 16:31)

Hi,

warum machst du das nicht einfach so?

struct daten *p;

p = (struct daten *)malloc(sizeof(struct daten));


Und falls du ein Array brauchst, kannst du ja das sizeof(...) noch mit der benötigten Elementezahl multiplizieren.

Gruß,
Stefan
Mensch, genau das wars! Im Nachhinein eigentlich logisch, aber wie soll man beim ersten Einsatz von malloc() darauf kommen? ;)

Danke für den Denkanstoß, damit wär mein Problem (und der Thread hier) erledigt <_<
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0