/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Loesung der Uebungsaufgabe Kapitel 6, Nr. 2 */ /* aus "C fuer Java-Programmierer", Hanser-Verlag */ /***************************************************************/ #include struct datum { int tag, monat, jahr; }; void kopie1(struct datum quelle, struct datum *ziel) { ziel->tag = quelle.tag; ziel->monat = quelle.monat; ziel->jahr = quelle.jahr; } struct datum kopie2(struct datum quelle) { struct datum result; result.tag = quelle.tag; result.monat = quelle.monat; result.jahr = quelle.jahr; return result; } struct datum *kopie3(struct datum quelle) { struct datum *result; result = (struct datum *)malloc(sizeof(struct datum)); result->tag = quelle.tag; result->monat = quelle.monat; result->jahr = quelle.jahr; return result; } int main(void) { struct datum d1 = { 1, 4, 2006 }, d2, d3, *d4; kopie1(d1,&d2); printf("d2: %1d.%1d.%4d\n\n",d2.tag,d2.monat,d2.jahr); d3 = kopie2(d1); printf("d3: %1d.%1d.%4d\n\n",d3.tag,d3.monat,d3.jahr); d4 = kopie3(d1); printf("d4: %1d.%1d.%4d\n",d4->tag,d4->monat,d4->jahr); return 0; }