var
mychar:pchar;
begin
try
mychar:=allocmem(255);
GetSystemDirectory(mychar,255); //如果这样赋值就不出错
mychar:=pchar('abc'); //这样赋值就出错
showmessage(mychar);
finally
freemem(mychar);
end;
end;下面这段也出错,错误信息:invalid pointer operater
var
mychar:pansichar;
begin
try
getmem(mychar,255);
mychar:='abc';
showmessage(mychar);
finally
strdispose(mychar);
end;
end;
mychar:pchar;
begin
try
mychar:=allocmem(255);
GetSystemDirectory(mychar,255); //如果这样赋值就不出错
mychar:=pchar('abc'); //这样赋值就出错
showmessage(mychar);
finally
freemem(mychar);
end;
end;下面这段也出错,错误信息:invalid pointer operater
var
mychar:pansichar;
begin
try
getmem(mychar,255);
mychar:='abc';
showmessage(mychar);
finally
strdispose(mychar);
end;
end;
showmessage(mychar);
finally
freemem(mychar); //你释放的是'ABC'
try
getmem(mychar,255);
//mychar:='abc';
//showmessage(mychar);
//showmessage(inttostr(getsystemdirectory(mychar,255)));
finally
//strdispose(mychar);
freemem(mychar);
end;