Hopsel: C - Pointer-Arithmetik Problem

Beitrag lesen

Hi Martin!

kannst du mit dem Basiszeiger p umgehen, als wäre er ein Array, weil Arrays und Zeiger in C in den meisten Kontexten gleichwertig sind:

Ich habe noch eine Bemerkung, die du mir noch bestätigen könntest.

Wenn du mit Hilfe einer n Byte großen Struktur Speicherplatz allokierst - genauso wie du es getan hast ([1]) - Dann verschiebt der Compiler bei einer Zuweisung wie p1 = p+120; den Zeiger p1 um p + 120*n Byte.
Was ich wissen möchte ist, ob der Compiler bei p++; nicht um 1 Byte oder Bit erhöht, sondern um die Größe der Struktur auf die p zeigt.

Ich hoffe, ich konnte mich verständlich ausdrücken.

[1] p = malloc(1000*n);
Wobei p vom Typ Zeiger auf die n-byte-große Struktur ist.

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:)