Ich möchte nochmal auf die Ausgangsfrage zurückkommen
Man kann sich die Signatur von Write mal angucken:
function Write(const Buffer; Count: Longint): Longint; virtual; abstract;
Ein
const-Parameter ist ein spezieller
var-Parameter, also kennzeichnet
const einen Call-By-Reference-Parameter.
Dh. wenn du
Stream.Write(Buffer^, counter );
aufrufst, übergibst du einen Zeiger (
const) auf den Inhalt (
^) eines Zeigers (
buffer).
Also hat die Funktion am Ende eine Referenz auf die Daten, die zu schreiben sind.
Im Unterschied dazu übergibt
Stream.Write(Buffer, counter );
einen Zeiger (
const) auf einen Zeiger (
buffer).
Also hat die Funktion am Ende eine Referenz auf den Zeiger
buffer und nicht auf die zu schreibenden Daten.