Heap Speicherverbauch einer Funktion?

1 Antwort

Ja, deine Vermutung ist korrekt. In der gegebenen Funktion wird ein Zeiger auf den Heap-Speicher sowohl für die Variable "a" als auch für die Variable "b" verwendet. Deshalb werden für beide Zeiger insgesamt 8 Bytes (2 * 4 Bytes) benötigt, um die Adressen auf den Speicherbereich von "a" und "b" zu speicern.In deinem Lösungsansatz hast du den Speicherbedarf für "b" richtig berechnet: 4 Bytes (Int32_t) * 18 = 72 Bytes. Da der Heap in Blöcken von 16 Bytes verwaltet wird, muss der reservirte Speicher auf das nächstgrößere Vielfache von 16 Bytes aufgerundet werden, also 80 Bytes.Zusammen mit den 8 Bytes für die Zeiger auf "a" und "b" ergibt sich ein maximaler Speicherbedarf von 80 + 8 = 88 Bytes für diese Funktion, wenn der Else-Zweig ausgeführt wird.