Hopsel: C - Pointer-Arithmetik Problem

Beitrag lesen

Hi Marcel!

Nun möchte ich den reservierten Speicher in Blocks aufteilen, sodass ich den ersten Block z.B. für ein Integer-Flag, den zweiten Block für eine Pointer-Adresse und den dritten Block für andere Daten nutzen oder noch weiter aufteilen kann.

Wieso arbeitest du dann nicht mit einer solchen Struktur?

Wichtig ist, dass ich später von dem am Anfang von malloc() erhaltenen Pointer wieder zum Integer-Flag oder zum zweiten Block finde (Die grössen sind bekannt).

Dann könntest du auch entsprechenden Speicherplatz allokieren und dir den Zeiger auf eine solche Struktur zurückgeben lassen.

Wie kann ich nun in einen 2. Block einen Pointer platzieren?

Es ist in C durchaus möglich Zeiger zu inkrementieren bzw. bitweise zu erhöhen. [1]

Wie erhalte ich den Wert des flags (0 oder 1) wieder wenn ich den Pointer zu area gegeben habe?

Du machst es dir einfach zu schwer. Wie um alles in der Welt willst du darauf zugreifen? Du müsstest dir alles auseinanderfriemeln. Mach es dir nicht so schwer und arbeite mit einer ordentlichen und sauberen Struktur.

[1] Nagel mich da nicht fest. Ich habe das noch nicht selbst angewandt und glaube, es gelesen zu haben.

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)