【发布时间】:2014-01-02 09:03:39
【问题描述】:
这里有几行在 delphi 7 中运行的 delphi 代码:
var
ptr:Pointer ;
begin
ptr:=AllocMem(40);
ptr:=Pchar('OneNationUnderGod');
if ptr<>nil then
FreeMem(ptr);
end;
运行此代码 sn-p 时,FreeMem(ptr) 将引发错误:'invalid pointer operation'。如果我删除这句话:
ptr:=Pchar('OneNationUnderGod');
那么不会发生错误。现在我有两个问题,
1.为什么会这样? 2.如果一定要使用pchar语句,应该如何释放之前分配的内存?
非常感谢您的帮助!
【问题讨论】:
标签: delphi pointers memory-management runtime-error