天天看點

VB程式設計:利用指針實作數組的插入

運作效果:

VB程式設計:利用指針實作數組的插入

程式代碼:

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型,沒有傳回值。

繼續閱讀