AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zugriff auf String^ (String pointer)

Ein Thema von Pixel · begonnen am 16. Feb 2017 · letzter Beitrag vom 17. Feb 2017
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#1

AW: Zugriff auf String^ (String pointer)

  Alt 17. Feb 2017, 15:18
Ohne konkreten Anwendungsfall und Not, würde ich mir heutzutage keine Gedanken mehr um Zeiger machen...speziell bei Strings. Moderne Strings sind mehr als nur simple Bytefolgen, da steckt zu viel dahinter, um es von Hand durchzuhecheln.
Die interne Definition versteckt sich als Record in der System.pas.
Im Grunde genommen ist String recht einfach, wenn man sich einen Hauch auskennt.
* der Zeiger bei Strings zeigt auf das erste Zeichen und und nicht auf den Recordanfang.
* leere Strings sind NIL (theoretisch könnte man auch den Record mit der Daten-Länge 0 verwenden, aber eigentlich kommt das nie vor)
** drum kann man Strings/dynamische Arrays auch oft "schnell" mit Assigned oder =nil bzw. ='' prüfen, anstatt ein Length(x)=0 nehmen zu müssen
* Die beiden #0#0 am Ende werden da nicht erwähnt, aber sind immer da (wenn niemand einen Buffer-Overflow verbrockt hat)
** #0 für PChar-Ende und #0#0 für C-StringListen (#0 für WertEnde und #0#0 für ListenEnde, also ein '' als letzter Wert)
* Die Referenzzählung hat einen Wert für String-Konstanten (-1), welcher bei Speicheroperationen beachtet werden sollte.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz