AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PChar ???

Ein Thema von edeWelzheim · begonnen am 18. Okt 2007 · letzter Beitrag vom 18. Okt 2007
 
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: PChar ???

  Alt 18. Okt 2007, 11:25
Um Gotteswillen.

Zitat von edeWelzheim:
in den knappen Beschreibungen, die ich habe, sieht alles ganz klar + einfach aus, wenngleich es
auch Widersprüche gibt
Das sind keine Widersprüche, sonder die Tatsache, dass ein PChar auf den selben Speicherbereich zeigen kann, wie ein String. Änderst du die Daten über den PChar, ändern sich automatisch auch die Daten des Strings. Das kann, wenn man nicht weiß, was man tut, gefährlich werden.

Zitat:
1)
//s:=Edit1.Text; pCh:=strPCopy(x,s); {->nicht ok; Müll hinten dran..?}
Lass mich raten. Der "Müll" steht hinter einem #0-Zeichen, also nicht im String, sondern einfach in den nicht benutzen Elementen des Arrays.

Zitat:
2)
{pCh:=strCat(pCh,pCh);} {ergibt 'ungültige Zeigeroperation' ?}
Das lasse ich jetzt mal unkommentiert.

Zitat:
3)
//das folgende tut auch nicht.. ?}
s:=inttoStr(StrLen(pCh));{StrPas(pCh);} Label1.Caption:=s;
Kann es sein, dass pCh ins Nirvana zeigt?


Zitat:
PS:
a) wird strAlloc überhaupt benötigt?
Das kommt darauf an, wie du an die Sache herangehst. Im Moment mischt du da kräftig durcheinander.
Zitat:
b) wie gesagt: eigentlich möchte ich nur Char/PChar aneinanderreihen (analog s:=s+'x');
PChars kann man nicht aneinanderreihen, da es Zeiger sind. Oder wie würdest du Zeiger aneinanderreihen? (außer vielleicht in einem Array)


Zitat:
pCh:='123';
Damit zeigt pCh auf den konstanten string '123', der insgesamt 4 Bytes enthält '123'#0. Wenn du nun versuchst da noch was anzuhängen, überschreibst du Speicher. Das ist auch als "Buffer Overflow" bekannt.



Mein Tipp: Schmeiß alles weg und probiere es ohne PChars nochmal.
  Mit Zitat antworten Zitat
 


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 03:50 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