pchar手动分配内存的疑惑

来源:互联网 发布:淘宝沉香手串真假 编辑:程序博客网 时间:2024/05/17 09:07
最近在一个项目中要调用别人的DLL,其中有个函数接口的参数是pchar类型的,因此我在调用的时候都是先分配内存,然后再传给它,
完了再释放,运行时没有问题的,但是我加了fastmm4以后,fastmm老是提示说我释放的指针是无效指针。最终没办法都改成了其它方式。

//举例:

var
arr: pChar;
begin
GetMem(P,255);
try
GetSystemDirectory(p,255);
Result := p;
finally
Freemem(p);
end;
end;
上面的代码就有问题,而下面的代码就没有问题

var
arr: array[0..MAX_PATH] of Char;
num: UINT;
begin
num := GetSystemDirectory(arr, MAX_PATH);
ShowMessage(arr);
end;
原创粉丝点击