Why not just skip all the encoding uncertainity of strings and use an array of byte/char?

It'll probably be a lot faster too

Den 16-07-2013 12:17, Carsten Bager skrev:
Hi
I have a question about dynamic strings and memory allocation.
If you look at my example underneath, I depend on that a dynamic string always 
is assigned
memory space in one connected block. But will that always be the case in 
various operating
systems.

Carsten





Function Sum(p:pointer; len:LongInt):LongInt;
Type
   a_typ=array[0..pred(maxLongInt)] of byte;
   a=^a_typ;
var
   i:LongInt;
Begin
   result:=0;
   for i:=0 to len do
     result:=result+a(p)^[i];
End;


Procedure test;
Var
   s:ansistring;
   i:integer;
Begin
   s:='Something';
   for i:=0 to 100000 do
     s:=s+'Test';
   if Sum(@s[1],length(s)) = 0 then
     halt(0);
End;

Med venlig hilsen
Carsten Bager

BEAS A/S
Brørupvænget 10
DK-7650 Bøvlingbjerg
Tlf. : +45 9788 5222 Fax : +45 9788 5434
www.beas.dk


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to