[fpc-pascal] length for long ansistring = segment fault
Michael Van Canneyt
michael at freepascal.org
Mon Dec 3 11:52:12 CET 2012
On Mon, 3 Dec 2012, Jonas Maebe wrote:
>
> On 03 Dec 2012, at 11:13, Michael Van Canneyt wrote:
>
>> On Mon, 3 Dec 2012, ik wrote:
>>
>>> var
>>> s : AnsiString;
>>> l : word;
>>>
>>> begin
>>> SetLength(s, 1024);
>>> FillChar(s, 1024, '*');
>>
>> You are overwriting the pointer. S is (behind the scenes) a pointer to a
>> memory area. You should do FillChar(s[1], 1024, '*');
>
> Or use http://www.freepascal.org/docs-html/rtl/system/stringofchar.html
I was considering answering with that too, but I didn't feel like
checking how it is implemented, to judge the speed penalty :)
Michael.
More information about the fpc-pascal
mailing list