怎么我用PChar类型,不申请内存不会出错,申请了反而出错了呢?
代码:
var
str:PChar;
begin
getmem(str,4);
str:='123';
showmessage(str);
freemem(str);---->这里出错
end;而这段没有申请内存的代码却没出错:
var
str:PChar;
begin
str:='123';
showmessage(str);
end;
代码:
var
str:PChar;
begin
getmem(str,4);
str:='123';
showmessage(str);
freemem(str);---->这里出错
end;而这段没有申请内存的代码却没出错:
var
str:PChar;
begin
str:='123';
showmessage(str);
end;
str:PChar;申明一个指针
str:='123'; 把系统给字符串'123'分配的空间的地址赋给str了
freemem(str);释放的是系统控制的内存~~赋值用strcopy
StrCopy(str, '123');
这样在执行freemem(str);就没错了~