[fpc-pascal] assigning ansistring with shortstring
Jonas Maebe
jonas.maebe at elis.ugent.be
Fri May 26 18:45:54 CEST 2006
On 26 May 2006, at 14:10, L505 wrote:
> I'm lacking some memory concept here. Below program doesn't work
> unless setlengths
> are called first on the shortstrings.
>
> program Project1;
>
> {$mode objfpc}{$H+}
>
> var
> filename: string;
> last3: string[3];
> last4: string[4];
> begin
> filename:= 'test';
> filename:= filename+ 'ing.pas';
> setlength(last3, 3);
> last3[1]:= filename[length(filename)-2];
> last3[2]:= filename[length(filename)-1];
> last3[3]:= filename[length(filename)];
> writeln('debug last3: ' + last3);
The length bytes of those shortstrings aren't initialised if you
don't do setlength(). It has nothing to do with memory allocation,
but with initialisation.
Jonas
More information about the fpc-pascal
mailing list