Differenze tra le versioni di "Memset ()"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'La funzione della libreria di C ''void * '''memset'''( void *buffer, int c, size_t count )'' imposta tutti i valori di un vettore (''array'') a zero. Volendola utilizzare i...')
 
Riga 19: Riga 19:
 
    
 
    
 
   
 
   
  <FONT color=gray>' ''Se il vettore è di tipo "Integer", allora il numero dei suoi elementi''
+
  <FONT color=gray>' ''Se il vettore è di tipo "Integer", allora il valore del 3° parametro della funzione''
 
  ' ''va moltiplicato per 4, poiché il valore di tipo "Intero" occupa nella memoria 4 byte:''</font>
 
  ' ''va moltiplicato per 4, poiché il valore di tipo "Intero" occupa nella memoria 4 byte:''</font>
 
       <FONT color=#B22222>memset</font>(cc, 0, cc.Count * SizeOf(gb.Integer))
 
       <FONT color=#B22222>memset</font>(cc, 0, cc.Count * SizeOf(gb.Integer))

Versione delle 05:11, 30 set 2013

La funzione della libreria di C

void * memset( void *buffer, int c, size_t count )

imposta tutti i valori di un vettore (array) a zero.


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 memset(dest As integer[], c As Integer, count As Integer) In "libc:6"


Semplice esempio uso in Gambas:

' void * memset( void *buffer, int c, size_t count )
Private Extern memset(dest As integer[], c As Integer, count As Integer) In "libc:6"

Public Sub Form_Open()

 Dim cc As Integer[] = [1, 2, 3, 4, 5]
 Dim j As Byte
 

' Se il vettore è di tipo "Integer", allora il valore del 3° parametro della funzione
' va moltiplicato per 4, poiché il valore di tipo "Intero" occupa nella memoria 4 byte:
     memset(cc, 0, cc.Count * SizeOf(gb.Integer))
  
   For j = 0 To cc.Max
     Print cc[j]
   Next

End