到底该申请多大的内存空间??
procedure TForm1.Button1Click(Sender: TObject); //把一个字符数组的内容拷贝到pchar变量中
var
p:pchar;
i:integer;
arrChar:array[0..19] of char;
begin
for i:=0 to 19 do
arrChar[i]:='a';
getmem(p,20);
CopyMemory(p, @arrChar[0], 20);
showmessage(strpas(p));
freemem(p);
end;
当上面的字符数组的长度是20的时候,拷贝后显示的p的内容有错误呀,最后会多个字符
但是我把字符数组的长度变成10后,也就是arrChar:array[0..9] of char;
申请的p的空间也相应减少,改后的程序如下:(显示的结果是正确的)。那到底要申请多少的空间呀?
procedure TForm1.Button1Click(Sender: TObject); //把一个字符数组的内容拷贝到pchar变量中
var
p:pchar;
i:integer;
arrChar:array[0..9] of char;
begin
for i:=0 to 9 do
arrChar[i]:='a';
getmem(p,10);
CopyMemory(p, @arrChar[0], 10);
showmessage(strpas(p));
freemem(p);
end;
另外一个问题,如果我用StrAlloc申请内存空间,又该申请多大呢?