Dynamische Strukturvariable

sirhC6

Grünschnabel
Hallo habe mal wieder ein kleines Problem über dem ich jetzt schon eine Weile brüte....

Aufgabe ist:

Die Funktion element_erzeugen() soll eine dynamische Variable vom Typ struct element_typ
im Heap erzeugen und an das Hauptprogramm einen Pointer auf die dynamische Variable als
Rückgabewert zurückgeben. Die Funktion edit_element() soll als Namen „Frank“ und als
Alter die Zahl 24 in die dynamische Variable eintragen. Die Funktion ausgeben() soll die
Komponenten der dynamischen Variable am Bildschirm ausgeben.

Hier der unvollständige Code der ergänzt werden soll:

C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct element_typ {
char name [20];
int alter;
};
.....* element_erzeugen (void)
{
....
}
void edit_element (....)
{
....
}
void element_ausgeben (....)
{
....
}
int main (void)
{
struct element_typ * ptr_objekt;
ptr_objekt = element_erzeugen ();
edit_element (ptr_objekt);
element_ausgeben (ptr_objekt);
free (ptr_objekt);
return 0;
}

Hier ist das was ich bisher gemacht habe. (Stimmt warscheinlich vorne und hinten nicht):
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct element_typ 
{
	char name [20];
	int alter;
};

ptr_objekt* element_erzeugen (void)
{
	i=malloc(sizeof(struct));
	i=struct element_typ;
	return *ptr;
}

void edit_element (element_typ)
{
	name=Frank;
	alter=24;
}

void element_ausgeben (ptr_objekt)
{
	printf("%ld",*ptr_objekt);
}

int main (void)
{
	struct element_typ * ptr_objekt;
	ptr_objekt = element_erzeugen ();
	edit_element (ptr_objekt);
	element_ausgeben (ptr_objekt);
	free (ptr_objekt);
	return 0;
}
Ich danke jetzt schon für Eure Hilfe.....

Gruss
 
Hier ist das was ich bisher gemacht habe. (Stimmt warscheinlich vorne und hinten nicht):
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct element_typ 
{
	char name [20];
	int alter;
};

ptr_objekt* element_erzeugen (void)
{
	i=malloc(sizeof(struct));
1. Wo kommt i auf einmal her? Was ist i?
2. Wie soll der arme Compiler wissen wieviel Speicher er jetzt allozieren soll? Es ist so als wenn dir jemand sagt: "Ich komme bei dir vorbei und bringe noch ein paar Freunde mit. Schaff schonmal Platz, wir wollen alle bei dir schlafen." Da weißt du auch nicht wieviel das sind, was die alles Essen wollen und wieviel Platz du jetzt bereitstellen müßtest. Ein "struct" ist kein Typ und keine Variable und besitzt demnach auch keine Größeninformation. Das "struct element_typ" ist ein (benutzerdefinierter) Typ. Damit kann sizeof dann auch was anfangen.

C:
void edit_element (struct element_type* x)
{
  strcpy(x->name, "Frank");
  x->alter = 24;
}

Den Rest müßtest du ja jetzt alleine hinkriegen.

Gruß
 

Neue Beiträge

Zurück