操作内存的一些函数
来源:互联网 发布:天庭淘宝店 txt 编辑:程序博客网 时间:2024/05/22 16:48
1.CopyMemory
CopyMemory()
函数功能描述:将一块内存的数据从一个位置复制到另一个位置
Delphi 函数原型 procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
C++ 函数原型
VOID CopyMemory(
PVOID Destination,
CONST VOID *Source,
DWORD Length
);
参数
Destination
要复制内存块的目的地址。
Source
要复制内存块的源地址。
Length
指定要复制内存块的大小,单位为字节
返回值
该函数为VOID型,没有返回值。
备注
如果目的块与源块有交叠,结果是不可预料的,使用MoveMemory可以解决这个问题。
2.MoveMemory
使用MoveMemory复制数据
procedure MoveMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
MoveMemory参数意义:(1)Destination:目的数据的地址;(2)Source:来源数据的
地址;(3)Length:数据的字节数
var Rect1,Rect2:TRect;
begin
Rect1.Left:=10;
Rect1.Top:=10;
Rect1.Bottom:=200;
Rect1.Right:=200;
Rect2.Left:=50;
Rect2.top:=100;
Rect2.Bottom:=400;
Rect2.Right:=390;
form1.Canvas.FillRect(Rect1);
showmessage('movemory!');
form1.Refresh;
windows.MoveMemory(@rect1,@rect2,sizeof(TRect));
form1.Canvas.FillRect(rect1);
end;
结果把rect2的值赋到rect1中
移动数组的值
一般的办法:
var s1,s2:array[0..4] of integer;
i:integer;
begin
s1[0]:=1;
s1[1]:=2;
s1[2]:=3;
s1[3]:=4;
s1[4]:=5;
s2[0]:=6;
s2[1]:=7;
s2[2]:=8;
s2[3]:=9;
s2[4]:=0;
for a:=0 to 4 do s1[a]:=s2[a];
end;
用movemeory的办法:
var s1,s2:array[0..4] of integer;
i:integer;
begin
s1[0]:=1;
s1[1]:=2;
s1[2]:=3;
s1[3]:=4;
s1[4]:=5;
s2[0]:=6;
s2[1]:=7;
s2[2]:=8;
s2[3]:=9;
s2[4]:=0;
for i:=0 to 4 do showmessage('s1的'+inttostr(i)+':'+inttostr(s1[i]));
showmessage('movemeory1!');
windows.MoveMemory(@s1,@s2,sizeof(s1));
for i:=0 to 4 do showmessage('s1的'+inttostr(i)+':'+inttostr(s1[i]));
end;
procedure FillMemory(Destination: Pointer; Length: DWORD; Fill: Byte);
{$EXTERNALSYM FillMemory}
procedure ZeroMemory(Destination: Pointer; Length: DWORD);
{$EXTERNALSYM ZeroMemory}
- 操作内存的一些函数
- 一些字符串及内存操作的函数
- 一些字符串及内存操作的函数的实现
- 一些字符串及内存操作函数的实现
- 消耗内存的一些操作
- 文件操作的一些函数
- 文件操作的一些函数
- 单链表操作的一些函数
- 文件操作的一些函数
- 字符串的一些操作函数
- 函数调用的内存操作
- 常用的内存操作函数
- 常用的内存操作函数
- Delphi 的内存操作函数:复制内存
- SQLite内存表的一些操作
- C 中内存的一些操作
- 常用内存函数的一些说明
- 一些内存拷贝函数
- Reporting services 开发
- 在linux下比较好用的chm阅读器和飞信软件
- ISO七层结构
- 创建使用类库
- 使用Javascript,CSS和Ajax创建ASP.NET自定义控件
- 操作内存的一些函数
- 浅谈pTOC指针(转载)
- c#中@的用法
- DL.DT.DD
- SharpDevelop开发Asp.net
- 浅析android通过jni控制service服务程序的简易流程
- 窗体关闭时候 为什么执行两次 FormClosing 事件?
- 干软件测试三年了,对行业的看法
- 转 OpenGL ES入门