关于释放指针的问题,有点怪,
PFuncInfo=^TFuncInfo
TFuncInfo=record
DispName: string;
Level: Integer;
end;
var
mFuncList: TStringList;//全局变量
代码大概如下:
procedure Init;
var
FuncInfo: PFuncInfo;
i: Integer;
begin
for i := 0 to sTempList.Count - 1 do
begin
New(FuncInfo);
with FuncInfo^ do
begin
DispName := sTempList.Strings[i];
Level := i;
mFuncList.AddObject(DispName, TObject(@FuncInfo));
end;
end;
end;
然后我在释放的时候如下:
procedure FreeFuncInfo;
var
i: Integer;
FuncInfo: PFuncInfo;
begin
if mFuncList <> nil then
begin
for i := 0 to mFuncList.Count - 1 do
begin
FuncInfo := PFuncInfo(mFuncList.Objects[i]);
if FuncInfo <> nil then
Dispose(FuncInfo);//此行出错,请教原因
end;
end;
end;
以上到底是怎么错了呢?谢谢!
TFuncInfo=record
DispName: string;
Level: Integer;
end;
var
mFuncList: TStringList;//全局变量
代码大概如下:
procedure Init;
var
FuncInfo: PFuncInfo;
i: Integer;
begin
for i := 0 to sTempList.Count - 1 do
begin
New(FuncInfo);
with FuncInfo^ do
begin
DispName := sTempList.Strings[i];
Level := i;
mFuncList.AddObject(DispName, TObject(@FuncInfo));
end;
end;
end;
然后我在释放的时候如下:
procedure FreeFuncInfo;
var
i: Integer;
FuncInfo: PFuncInfo;
begin
if mFuncList <> nil then
begin
for i := 0 to mFuncList.Count - 1 do
begin
FuncInfo := PFuncInfo(mFuncList.Objects[i]);
if FuncInfo <> nil then
Dispose(FuncInfo);//此行出错,请教原因
end;
end;
end;
以上到底是怎么错了呢?谢谢!
...全文
相关推荐
079香飘飘冒险岛吸怪
冒险岛吸怪,支持079版本,无敌-VB-C
C++指针 数组 内存释放.docx
C++指针 数组 内存释放 相关说明
冒险岛吸怪无敌 源码
冒险岛吸怪无敌 VC编制的 东西很老了 只支持8.0 有兴趣的看看
C++ 在堆上开辟与释放二维、三维指针详细解析
学习C++新手通常会对指针的使用比较头疼,其实指针的概念很简单,只要能悟清楚这样一个简单的道理就能对指针有一定的认识了: 例如 int *a = new int[10]; 一维指针其实就相当于一维数组,不用去看书上所说的数组在内存中的首地址这些晦涩的话,以此类推 二维指针就相当于二维数组,新手对一维数组的开辟与释放比较容易熟悉,例如上面的a 释放就是 delete []a; a = NULL; 注意a = NULL; 必须要加上,这样是为了避免这个指针会变成“野指针”。写程序时一定要注意规范性和严谨性,避免可能会出现的错误。 代码如下://二维指针的开辟与释放int **b = NULL;b
Linux如何处理文件已删除但空间不释放的问题
主要介绍了Linux如何处理文件已删除但空间不释放的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


语言基础/算法/系统设计
