清空和填充記憶體

2022-06-09 05:15:08 字數 3263 閱讀 9954

fillmemory、zeromemory 一目了然的兩個函式, 但其實它們都是呼叫了 fillchar;

清空不過就是填充空字元(#0: 編號為 0 的字元), 說來說去是一回事.

為了下面的測試, 先寫乙個以十六進製制方式檢視記憶體的函式:

functiongetmembytes(varx; size: integer):string;

var

pb: pbyte;

i: integer;

begin

pb := pbyte(x);

fori := 0

tosize - 1

do

begin

result := result + inttohex(pb^, 2

) + #32

;

inc(pb);

end;

end;

//測試:

var

p1: pansichar;

p2: pwidechar;

s1: ansistring;

s2: unicodestring;

begin

p1 := 'abcd'

;

p2 := 'abcd'

;

s1 := 'abcd'

;

s2 := 'abcd'

;

showmessage(getmembytes(p1,4

));

showmessage(getmembytes(p2,8

));

showmessage(getmembytes(s1,4

));

showmessage(getmembytes(s2,8

));

end;

測試 fillmemory、zeromemory、fillchar 三個填充函式:

const

num = 10

;

var

p: pchar;

begin

p := stralloc(num);

showmessage(getmembytes(p, num));

fillmemory(p, num, byte('a'

));

showmessage(getmembytes(p, num));

zeromemory(p, num);

showmessage(getmembytes(p, num));

fillchar(p^, num, 'b'

);

showmessage(getmembytes(p, num));

strdispose(p);

end;

此時, 我想到乙個問題:

getmem 和 getmemory 沒有初始化記憶體; allocmem 會初始化記憶體為空, 那麼

reallocmem、reallocmemory 會不會初始化記憶體?

測試一下(結果是沒有初始化):

var

p: pointer;

begin

p := getmemory(3

);

showmessage(getmembytes(p, 3

));

reallocmem(p, 10

);

showmessage(getmembytes(p, 10

));

freememory(p);

end;

var

p: pointer;

begin

p := allocmem(3

);

showmessage(getmembytes(p, 3

));

reallocmem(p, 10

);

showmessage(getmembytes(p, 10

));

freememory(p);

end;

另外: fillmemory、zeromemory 的操作物件是指標, 而 fillchar 的操作物件則是實體.

批處理填充手機記憶體,ROM填充,記憶體填充小工具

adb shell dd填充記憶體用法 echo off adb wait for device echo 當前手機可用記憶體如下 adb shell df h data media set p name 輸入檔名稱 注意 名稱重複會覆蓋原檔案 set p count 輸入需要填充的檔案大小 單位為...

堆積木 vector 清空記憶體

蒜頭君有 n 塊積木,編號分別為 1 到 n。一開始,蒜頭把第 i 塊積木放在位置 i。蒜頭君進行 m 次操作,每次操作,蒜頭把位置 b 上的積木整體移動到位置 a 上面。比如 1 位置的積木是 1,2 位置的積木是 2,那麼把位置 2 的積木移動到位置 1 後,位置 1 上的積木從下到上依次為 1...

vector清空 ,防止記憶體洩露

注 使用過第三種方法,可行!vector vecint for int i 0 i 500 i int j vecint.capacity j 512 i vecint.size i 500 第一種辦法使用 clear 清空元素,但不 空間 vecint.clear j vecint.capacit...