Hallo,
* Boris Höffgen [2004-07-05 22:12]:
wie bekomme ich den Inhalt von vorname?
printf("%s",a.daten.vorname) liefert logischer Weise
einen Seg.-Fault, aber wie greife ich darauf zu, ohne
z.B. ein "char vorname[50]" daraus zu machen?
Du musst Speicherplatz allokieren und dem Pointer die Adresse des
allokierten Speicherplatzes zuweisen.
=================================================
#include
#include
#include
#include
typedef struct RestTyp
{
char *vorname;
int nr;
} Rest;
typedef struct
{
Rest daten;
} Datensatz ;
int main (int argc, char** argv)
{
Datensatz a;
/* allocate memory for 50 chars */
a.daten.vorname = malloc( 50 * sizeof(char) );
if (! a.daten.vorname)
{
perror("Not enough memory");
return EXIT_FAILURE;
}
/* fill with my name */
strncpy(a.daten.vorname, "Bernhard", 50);
/* print it out */
printf("Mein Name ist %s\n", a.daten.vorname);
/* free it */
free(a.daten.vorname);
return EXIT_SUCCESS;
}
=================================================
Gruß,
Bernhard
--
_________ http://www.bwalle.de _________________________________________________
"Wir sollten den Kosmos nicht mit den Augen des Rationalisierungsfachmanns
betrachten. Verschwenderische Fülle gehört seit jeher zum Wesen der Natur."
-- Wernher von Braun