Memcpy ()

Da Gambas-it.org - Wikipedia.
Versione del 20 lug 2013 alle 14:41 di Vuott (Discussione | contributi) (Creata pagina con 'La funzione della libreria di C ''void *memcpy(void *str1, const void *str2, size_t n)'' copia ''n'' caratteri da un'area di memoria ''str2'' ad un'altra area di memoria ''st...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

La funzione della libreria di C

void *memcpy(void *str1, const void *str2, size_t n)

copia n caratteri da un'area di memoria str2 ad un'altra area di memoria str1.


Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern memcpy(dest As Pointer, src As Pointer, count As Integer) As Pointer In "libc:6"


Semplice esempio di uso in Gambas:

' wchar_t * memcpy(wchar_t * dest, Const wchar_t * src, size_t count)
Private Extern memcpy(dest As Pointer, src As Pointer, count As Integer) As Pointer In "libc:6"

Public Sub Form_Open()

 Dim a, b, c As Pointer
 Dim num As Integer
 
   a = Alloc(SizeOf(gb.Integer))
   b = Alloc(SizeOf(gb.Integer))
 
   num = 999
 
   a = VarPtr(num)
 
     memcpy(b, a, SizeOf(gb.Integer))
  
  Print Int@(b)

End