運作效果:
程式代碼:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Form_Load()
On Error GoTo 1
Dim arr()
arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
Text1.Text = ""
For j = 0 To UBound(arr)
Text1.Text = Text1.Text & arr(j)
Next j
ReDim Preserve arr(UBound(arr) + 1) '重定義數組arr上标
Debug.Print UBound(arr)
Dim i As Integer
i = InputBox("請輸入要插入的位置:", "插入")
CopyMemory arr(i + 1), arr(i), (UBound(arr) - i + 2) * 16 '變體變量占16個位元組, 不是很明白
arr(i) = InputBox("要插入的數字", "插入")
Text2.Text = ""
Text2.Text = Text2.Text & arr(j)
1: End Sub
學習總結:
CopyMemory()
函數功能描述:将一塊記憶體的資料從一個位置複制到另一個位置
函數原型
VOID CopyMemory( PVOID Destination, CONST VOID *Source, DWORD Length );
參數
Destination 要複制記憶體塊的目的位址。
Source 要複制記憶體塊的源位址。
Length 指定要複制記憶體塊的大小,機關為位元組
傳回值 該函數為VOID型,沒有傳回值。