This is an old solution how to allocate a large buffer. Rather use the alternative tip listed above. The code below works correct but it declares (now) twice the space. In a WideStr one element is two bytes. On the other hand the method is outdated, because there are now more typecast possibilities with the newer Delphi versions.
// In this example you can use large buffers very easy
var
s0 : WideString;
s : PChar;
begin
// Allocate 1 MB
SetLength(s0, 1048576);
s:=PChar(s0);
end.