reservierung von speicher im heap
-
hallo,
ich versuche in einer funktion speicher auf dem heap zu reservieren.
ich möchte in der funktion "get_variables" die variablen *a und *b mit werten initialisieren, das sie nach dem aufruf der funktion neue werte besitzem!void get_variables(int *a, int *b) { //reservierung des speichers auf dem heap int *pointer_a = (int *) calloc(1, sizeof(int) ); int *pointer_b = (int *) calloc(1, sizeof(int) ); //zwischenvariablen int p = 88; int q = 99; //zuweisung der neuen werte *pointer_a = p; *pointer_b = q; //testausgabe [gewünschte ausgaben werden gemacht] printf("Inhalt von pointer_a: %d \n", *pointer_a); printf("Inhalt von pointer_b: %d\n", *pointer_b); //zuweisung des im heap reservierten speichers zu den übergebenen variablen //a und b a = pointer_a; b = pointer_b; } int main(void) { int *a = NULL; int *b = NULL; int x = 5; int y = 6; a = &y; b = &x; get_variables(a, b); //hier sollten jetzt die neuen werte, die in get_variables gesetzt wurden, //angezeigt werden - dies ist leider nicht der fall printf("Ausgabe von a: %d\n", *a); printf("Ausgabe von b: %d\n", *b); getchar(); }
meine frage:
wie kann ich die übergebenen variablen a und b initialisieren?
ich möchte schon mit der reservierung aus dem heap arbeiten.
was mache ich falsch?!
-
** verwenden und die Adressen der Pointer an die Funktion übergeben.
void get_variables(int **a, int **b)
und get_variables(&a, &b);
-
vielen dank
in get variables noch die zuweisung:
*a = pointer_a;
*b = pointer_b;danke für deine antwort!!