程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 【心得】關於刪除結構體動態數組指定項的正確方法,心得數組

【心得】關於刪除結構體動態數組指定項的正確方法,心得數組

編輯:Delphi

【心得】關於刪除結構體動態數組指定項的正確方法,心得數組


網絡上很多前輩提供的方法大多是這樣寫的:

procedure DeleteArrItem(var arr: TArr; Index: Integer);
var
  Count: Cardinal;
begin
  Count := Length(arr);
  if (Count = 0) or (Index < 0) or (Index >= Count) then Exit;
  Move(arr[Index+1], arr[Index], (Count-Index)* SizeOf(arr[0]));
  SetLength(arr, Count - 1);
end;

這個方法刪除非結構體動態數組或者不帶string的結構體動態數組一般是沒有問題的。

但是如果結構體中有string類型的數據,那用這個方法就會報內存洩漏。

解決的方法就是給結構體中string類型限定字符,比如string[10],這樣調用上面的方法刪除動態數組中的指定項就不會有問題了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved