Memcpy ()
Vai alla navigazione
Vai alla ricerca
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é bisognerà dichiarare 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 con un valore numerico di tipo Intero
' void *memcpy(void *str1, const void *str2, size_t n) Private Extern memcpy(dest As Pointer, src As Pointer, count As Integer) In "libc:6" Public Sub Main() Dim a, b As Pointer Dim num As Integer num = 999 a = VarPtr(num) b = Alloc(SizeOf(gb.Integer)) memcpy(b, a, SizeOf(gb.Integer)) Print Int@(b) Free(b) End
Semplice esempio di uso in Gambas con un valore di tipo Stringa
' void *memcpy(void *str1, const void *str2, size_t n)
Private Extern memcpy(dest As Pointer, src As Pointer, count As Integer) In "libc:6"
Public Sub Main()
Dim src, dest As Pointer
Dim s As String = "Questa è una prova con la funzione 'memcpy()'."
src = Alloc(s)
dest = Alloc(Len(s))
memcpy(dest, src, Len(s))
Print "Dopo memcpy, " & Quote("dest") & ":\n"; String@(dest)
Free(src)
Free(dest)
End