000
03.05.2008, 11:24 Uhr
~C-Lerner
Gast
|
Hallo,
ich belege einen Kurs zum C-Lernen. Dort ist folgende Aufgabe gestellt worden:
Schreiben Sie das Programm von Aufgabe 3 von Call by Value auf Call by Reference um.
Call by Value (Kopie) und Call by Reference (Direkte Übergabe) ist mir klar. Aber ich habe leider keinen Ansatz, folgendes simples Beispiel auf Call by Reference umzuschreiben:
| C++: |
#include <stdio.h> #include <stdlib.h>
typedef struct{ int x; int y; }Punkt;
struct Anker{ Punkt *ds; };
void speicher( struct Anker nxt ) { nxt.ds = malloc(sizeof(Punkt)); if( nxt.ds != NULL) { printf("Erfolgreich\n"); nxt.ds->x = 2; nxt.ds->y = 4; printf("x:%d\n",nxt.ds->x); printf("y:%d\n",nxt.ds->y); } else { printf("Fehler"); } }
int main() { struct Anker vAnker; vAnker.ds = NULL; speicher(vAnker); printf("Hauptprogramm:\n"); if (vAnker.ds != NULL) { printf("x:%d\n",vAnker.ds->x); printf("y:%d\n",vAnker.ds->y); } else { printf("Keine Adresse\n"); } return 0; }
|
Hinter dem Programm ist nicht wirklicher Sinn, sondern nur der Beginn von Zeigern usw.
Vielen Dank für eure Hilfe! |