Memcpy (): differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
La funzione della libreria di C
La funzione della libreria di C
  ''void *memcpy(void *str1, const void *str2, size_t n)''
  ''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''.
copia ''n'' caratteri da un'area di memoria ''str2'' ad un'altra area di memoria ''str1''.



Versione delle 15:47, 20 lug 2013

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 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