メモリブロックを0で初期化          <TOP>


指定した範囲を0で埋めます。

RtlZeroMemory (ZeroMemory)メモリブロックを0で初期化

 

例では、起動時1〜1000までの値を配列に入れ、200〜299の範囲を0で埋めています。

左:一見同じようですが    中:200〜    右:〜299を確認

  

 

'================================================================
'= メモリブロックを0で初期化
'=    (ZeroMemory.bas)
'================================================================
#include "Windows.bi"

' メモリブロックを0で初期化
Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (Destination As Any, ByVal Length&)

Var Shared List1 As Object
Var Shared List2 As Object
List1.Attach GetDlgItem("List1") : List1.SetFontSize 14
List2.Attach GetDlgItem("List2") : List2.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Var dt(1000) As Long

    '配列にデータを入れる
    For i = 1 To 1000
        dt(i) = i
        List1.AddString Str$(dt(i))
    Next

    '200番目の配列から100項目、0で埋める
    ZeroMemory dt(200), 100 * Len(dt(1))


    '確認
    For i = 1 To 1000
        List2.AddString Str$(dt(i))
    Next
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End