operación de la memoria la función del lenguaje C

memcpy:

el establecimiento de memoria * void (* vacío ¿Dónde quiere, const * Fuente vacío, NUM size_t); 

Fuente de copiar datos de dest, se observó size_t que el número de bytes, e independientemente del tipo. Por ejemplo, puede llamar a:
int main () 
{ 
    int p [ 3 ] = { 4 , 4 , 4 }, q [ 3 ] = { 2 , 2 , 2 }; 
    memcpy (p, q, 3 * sizeof ( int ));
    volver  0 ; 
}

En el que una longitud de 3 para especificar un int, un total de 12 bytes copiados.

 

memmove:

* Memmove void (* destino vacío, fuente * void const, size_t num); 

y memcpy funcionalmente similares, pero la función interna evitará datos borrar posición original durante la replicación, tal como por una serie de p que memcpy (p + 2, p , 5 * sizeof (int)) ; podemos ver que el primer tiempo de copia int, la posición de la tercera p [2] de la replicación de datos.

 

 

 Memcpy memmove diferencia con este es que la memoria puede ser identificado a solapar los datos copiados desde la parte posterior, en este caso, a fin de no generar resultados de los datos duplicados en los datos perdidos.

El principio es el interior de un sentencias si otra cosa, si hay una superposición de la memoria dos casos fueron tratados por separado. Compruebe si el recuerdo de que es coincidente con una __np_anyptrlt macro. códigos de lenguaje C son los siguientes:

#include <stddef.h> / * para size_t * / 
void * memmove ( void * dest, const  void * src, size_t n) 
{ 
    unsigned char * pd = dest;
    const unsigned char * ps = src;
    si (__np_anyptrlt (ps, pd))
         para (pd + = n, ps + = n; n-- ;)
             * - pd = * - ps;
    otro 
        mientras (n-- )
             * pd ++ = * ps ++ ;
    volver dest; 
}

 

 

memcpr:

void * memcpy (* destino vacío, fuente const void *, size_t num); 
tanto comparar el tamaño de cada byte (en comparación de tamaño ASCII, la 'g' es mayor que 'G' mayor de letra minúscula mayúscula)
Nota : '0': 48, ' a': 65 'a': 97

 

 

 

memset:

memset * void (void * ptr, valor int, size_t num); 
un byte ptr num después del llenado con el valor.

 

/ * Ejemplo memset * / 
#include <stdio.h> 
#include < string .h> int main () 
{ char str [] = " casi todo programador debe saber memset! " ; 
  memset (str, ' - ' , 6 ); 
  puts (str); volver 0 ; 
}


  
   

 

 

 





Supongo que te gusta

Origin www.cnblogs.com/FdWzy/p/12466479.html
Recomendado
Clasificación