随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万


一句话: 用 CompareMem 对比内存即可.

{对比静态数组}
procedure TForm1.Button1Click(Sender: TObject);
var
  arr1: array[0..3] of AnsiChar;
  arr2: array[0..3] of Byte;
begin
  arr1[0] := 'A'; arr1[1] := 'B'; arr1[2] := 'C'; arr1[3] := 'D';
  arr2[0] := 65;  arr2[1] := 66;  arr2[2] := 67;  arr2[3] := 68;

  if CompareMem(@arr1, @arr2, SizeOf(arr1)) then
    ShowMessage('arr1 与 arr2 中的数据相同');
end;

{对比动态数组}
procedure TForm1.Button2Click(Sender: TObject);
var
  arr1: array of AnsiChar;
  arr2: array of Byte;
begin
  SetLength(arr1, 4);
  SetLength(arr2, 4);
  arr1[0] := 'A'; arr1[1] := 'B'; arr1[2] := 'C'; arr1[3] := 'D';
  arr2[0] := 65;  arr2[1] := 66;  arr2[2] := 67;  arr2[3] := 68;

  if CompareMem(arr1, arr2, SizeOf(arr1)) then
    ShowMessage('arr1 与 arr2 中的数据相同');
end;

{多维数组也一样}
procedure TForm1.Button3Click(Sender: TObject);
var
  arr1: array[0..1, 0..1] of AnsiChar;
  arr2: array[0..1, 0..1] of Byte;
begin
  arr1[0,0] := 'A'; arr1[0,1] := 'B'; arr1[1,0] := 'C'; arr1[1,1] := 'D';
  arr2[0,0] := 65;  arr2[0,1] := 66;  arr2[1,0] := 67;  arr2[1,1] := 68;

  if CompareMem(@arr1, @arr2, SizeOf(arr1)) then
    ShowMessage('arr1 与 arr2 中的数据相同');
end;

posted on   万一  阅读(5611)  评论(9编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2008-03-13 学习 TTreeView [10] - AutoExpand、HotTrack、ReadOnly、ShowButtons、ShowLines、ShowRoot、Indent
2008-03-13 学习 TTreeView [9] - OnDragDrop、OnDragOver
2008-03-13 学习 TTreeView [8] - AlphaSort、CustomSort、SortType


点击右上角即可分享
微信分享提示