Differenze tra le versioni di "Memcpy ()"
Da Gambas-it.org - Wikipedia.
Riga 9: | Riga 9: | ||
− | Semplice esempio di uso in Gambas | + | ===Semplice esempio di uso in Gambas con un valore numerico di tipo ''Intero''=== |
− | <FONT color=Gray>' '' | + | <FONT color=Gray>' ''void *'''memcpy'''(void *str1, const void *str2, size_t n)''</font> |
− | '''Private''' <FONT color=#B22222>Extern memcpy</font>(dest As Pointer, src As Pointer, count As Integer) | + | '''Private''' <FONT color=#B22222>Extern memcpy</font>(dest As Pointer, src As Pointer, count As Integer) In "<FONT color=#B22222>libc:6</font>" |
− | '''Public''' Sub | + | '''Public''' Sub Main() |
Dim a, b As Pointer | Dim a, b As Pointer | ||
Dim num As Integer | Dim num As Integer | ||
− | |||
− | |||
− | + | num = 999 | |
+ | |||
+ | a = VarPtr(num) | ||
+ | b = Alloc(SizeOf(gb.Integer)) | ||
− | |||
− | + | <FONT color=#B22222>memcpy</font>(b, a, SizeOf(gb.Integer)) | |
Print Int@(b) | Print Int@(b) | ||
+ | |||
+ | Free(b) | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | ===Semplice esempio di uso in Gambas con un valore di tipo ''Stringa''=== | ||
+ | <FONT color=Gray>' ''void *'''memcpy'''(void *str1, const void *str2, size_t n)''</font> | ||
+ | '''Private''' <FONT color=#B22222>Extern memcpy</font>(dest As Pointer, src As Pointer, count As Integer) In "<FONT color=#B22222>libc:6</font>" | ||
+ | |||
+ | |||
+ | '''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)) | ||
+ | |||
+ | <FONT color=#B22222>memcpy</font>(dest, src, Len(s)) | ||
+ | |||
+ | Print "Dopo memcpy, " & Quote("dest") & ":\n"; String@(dest) | ||
+ | |||
+ | Free(src) | ||
+ | Free(dest) | ||
'''End''' | '''End''' |
Versione delle 17:48, 10 mar 2014
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