I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
dette her bliver mere og mere mystisk. I tråd med eksemplet ovenfor laver jeg en form med et memo på og bruger
var p: pchar; s: string; begin s:= 'Urne'; p:= pchar(s); p^:= #65; //dette giver AV p[0]:= #65 //det gør dette også p:= 'Arne'; //dette må man gerne memo1.lines.add(string(p)); end;
Eksemplet ovenfor giver fin kompilering, men access violation når programmet køres (EAccessViolation). Jeg vil meget gerne have styr på dette her- er der mon et eller andet kompilerswitch jeg kan have sat forkert (bruger altid bare default). Er der noget package, uses eller et eller andet mystisk jeg kan have overset?
begin s:= 'Urne'; p:= pchar(s); p^:= #65; //dette giver AV p[0]:= #65; //det gør dette også p:= 'Arne'; //dette må man gerne memo1.lines.add(string(p)); end;
fejler men
var p: pchar; s: string;
procedure TForm1.Button1Click(Sender: TObject);
begin s:= 'Urne'; p:= pchar(s); p^:= #65; //dette giver AV p[0]:= #65; //det gør dette også p:= 'Arne'; //dette må man gerne memo1.lines.add(string(p)); end;
virker
d.v.s. at det virker når s er i heap og ikke på stack
begin s:= 'Urne'; p:=StrAlloc(length(s)+1); StrCopy(p,@s); p^:= #65; //dette giver AV p[0]:= #65; //det gør dette også p:= 'Arne'; //dette må man gerne memo1.lines.add(string(p)); end;
Det var helt uventet. Hvem skulle have troet det?! Jeg kan ikke finde noget om dette i help-filerne noget sted. For lige at præcisere, jeg gætter på (men kan ikke teste det her) at det er p (og ikke s) der skal være i heap'en, idet det jo er p der manipuleres.
Det virker egentlig fjollet hvis der er forskel i adgangsrettighederne på heap og stack under disse forhold. Prøver om jeg kan finde noget på nettet om det. Hvis du finder noget så skriv lige et par adresser her...
Y.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.