Verständnisfrage Zeiger & Proceduren
Verfasst: 14.02.2012 05:25
Hallo.
Ich habe da mal eine Verständnisfrage:
Bisher habe ich Strings immer direkt an Proceduren übergeben, aus Sorge, ich könnte Probleme mit der Speicherverwaltung bekommen.
(Mit Zahlen ist das ja kein Problem, die sind ja intern immer gleich lang. Je nach Typ).
Nun traue ich mich aber doch mal.
Wenn ich an eine Procedure den Zeiger eines Strings übergebe
und den String dann in der Procedure verändere,
übernimmt PB die Verwaltung,
damit ich nicht bei längeren Strings ausversehen anderen Speicher überschreibe?
Ist also folgendes erlaubt?
Oder hatte ich nur glück, das nichts schlimmes passiert ist?
Und was passiert, wenn ich einen String verändere, für den es keinen Zeiger gibt?
Gruß: BSP
Ich habe da mal eine Verständnisfrage:
Bisher habe ich Strings immer direkt an Proceduren übergeben, aus Sorge, ich könnte Probleme mit der Speicherverwaltung bekommen.
(Mit Zahlen ist das ja kein Problem, die sind ja intern immer gleich lang. Je nach Typ).
Nun traue ich mich aber doch mal.
Wenn ich an eine Procedure den Zeiger eines Strings übergebe
und den String dann in der Procedure verändere,
übernimmt PB die Verwaltung,
damit ich nicht bei längeren Strings ausversehen anderen Speicher überschreibe?
Ist also folgendes erlaubt?
Oder hatte ich nur glück, das nichts schlimmes passiert ist?
Code: Alles auswählen
Procedure test(*a$)
*a$="viel Länger"
EndProcedure
a1$="Kurz"
Debug a1$
test(@a1$)
Debug a1$
Code: Alles auswählen
Procedure test(*a$)
*a$="viel Länger"
*b$="noch viel Länger"
EndProcedure
a1$="Kurz"
b1$="Ruck"
Debug a1$
Debug b1$
test(@a1$)
Debug a1$
Debug b1$