Memmove() en C y C++

Memmove En C Y C



Hoy vamos a aprender una de las funciones importantes del lenguaje C y C++, que es la función memmove(). Pero antes de eso, echemos un vistazo rápido a los conceptos básicos de los lenguajes C y C++. También discutiremos qué funciones hay en ambos lenguajes C/C++.

El lenguaje de programación C es fácil y bastante efectivo para todos los propósitos. Con él es posible la implementación de software como el sistema operativo Windows, bases de datos, intérpretes y otras herramientas. C es un gran lenguaje para que los principiantes aprendan a codificar. Es por eso que la programación en C se conoce como el lenguaje materno, ya que sirve como base para todos los demás lenguajes de programación. La base del lenguaje de programación C++ se basa en las ideas de la programación orientada a objetos (POO). El usuario puede desarrollar y comprender los principios del programa fácilmente ya que C++ tiene una estructura clara. El lenguaje de programación C\C++ es excepcionalmente versátil para realizar múltiples funciones y cambiar una variable de un tipo a otro. La función memmove() es una de las funciones de C/C++.







La función memmove() transfiere 'num' bytes simultáneamente desde el contenido del bloque de memoria indicado por el origen hacia la ubicación indicada por el destino. La función memmove() solo es beneficiosa cuando los objetos de origen y destino se superponen y evita que ocurra un comportamiento indefinido. Para obtener más información sobre la función memmove(), profundicemos y veamos cómo implementar la sintaxis y los ejemplos en la función memmove().



Sintaxis:

Aquí está el mismo estilo de escritura y la implementación de la función memmove() para los lenguajes C y C++. Primero, escribimos la palabra clave 'void', lo que significa que si la función no devuelve ningún valor, escribimos el nombre de la función que queremos implementar, que es la función memmove(). En los paréntesis de función, escribimos el destino para que podamos colocar los bytes 'num' con la palabra clave 'void'. Luego, escribimos la ubicación de origen desde donde obtenemos los bytes 'num'.







Parámetros:

mano: Dirección de la ubicación de almacenamiento en la que se copian los datos.

origen: Dirección de la ubicación de almacenamiento desde la que se copian los datos.



contar: Cantidad de datos para copiar desde el origen al destino.

Valor de retorno:

A cambio, obtenemos la dirección del área de memoria de destino. Dest es devuelto por la función memmove().

Ejemplo 1: Implementación de la función Memmove() en C

Comencemos a implementar nuestro primer y simple ejemplo del lenguaje C. Para comenzar a escribir, primero necesitamos un compilador de C para que podamos escribir y ejecutar el programa. Para eso, abra el compilador de C y comience a implementar el programa.

#incluir
#incluir

int principal ( )
{
char ch1 [ ] = { 'L' , 'i' , 'norte' , 'en' , 'X' } ;
   
longitud int = tamaño de ( ch1 ) / tamaño de ( ch1 [ 0 ] ) ;
   
    imprimir ( 'Antes de aplicar la función memmove():' ) ;
    por ( En t i = 0 ; i < longitud; yo ++ )
    {
            imprimir ( '%C' , canal 1 [ i ] ) ;
    }

carbonizarse * ch2 = & ch1 [ 2 ] ;
recuerda ( ch2, ch1, tamaño de ( carbonizarse ) * 2 ) ;

    imprimir ( ' \norte \norte Después de aplicar la función memmove(): ' ) ;
   
    por ( En t i = 0 ; i < 5 ; yo ++ )
    {
        imprimir ( '%C ' , canal 1 [ i ] ) ;
    }
    devolver 0 ;

}

 
Siempre comenzamos incorporando los módulos del programa principal después de iniciar el compilador. Estos módulos son los módulos de lenguaje C incluidos. Simplemente necesitamos escribir una línea de código para incluir estos módulos, en lugar de docenas de líneas de código para construir el módulo. El indicador '#' le informa al traductor que cargue el módulo primero antes de usar la palabra clave 'incluir' para agregar el módulo al programa. El módulo “stdio.h” significa que el compilador acepta los datos del usuario y se los muestra. El segundo módulo del programa es “#include ” para que podamos usar las funciones relacionadas con cadenas en el programa existente.

Luego, iniciamos la función main() para que podamos escribir la línea de código real que queremos implementar en el programa. En la línea 6, declaramos el nombre de la matriz de caracteres 'ch1' de tipo carácter. Luego, le asignamos un valor de carácter. Después de eso, calculamos la longitud de 'ch1' e imprimimos la matriz de entrada 'ch1' usando el 'bucle for'.

Después de eso, declaramos el puntero a la matriz 'ch2' de un carácter de tipo y asignamos la dirección de la matriz 'ch1' a la matriz 'ch2'. Luego, lo imprimimos usando la instrucción printf(). Veamos el resultado de la ilustración anterior:

Ejemplo 2: Implementación de la función Memmove() en C++

Aquí está el ejemplo básico que muestra cómo funciona la función memmove() en el lenguaje C++. Para comenzar a escribir, primero necesitamos un IDE de C++ para que podamos escribir y ejecutar el programa. Para eso, abra el compilador de C++ y comience a implementar el programa.

Después de abrir el compilador, siempre comenzamos por incluir los archivos de encabezado que son necesarios para el lenguaje de programación C++ para que se ejecuten los programas. Para construir el programa y usar el método memmove(), primero incluimos los dos archivos de encabezado fundamentales: 'iostream' y 'cstring'. C++ proporciona varias formas de trabajar con matrices y cadenas. Estas funciones están disponibles para su uso cuando el archivo de encabezado se incluye en un programa con el archivo de encabezado '#include  ' que se usa para copiar una determinada cantidad de bytes de datos desde el origen hasta el destino. El archivo de encabezado '#include ' se usa tanto para la entrada como para la salida de los datos del usuario. Luego, usamos el 'espacio de nombres std' estándar en nuestro código para usar la sintaxis estándar del lenguaje de programación C++ para que podamos evitar que los objetos, métodos y parámetros hagan referencia al mismo alcance en todo el programa.

#incluir
#incluir
utilizando el espacio de nombres estándar;

int principal ( )
{
fuente char [ 50 ] = '1234567890' ;
destino char [ 50 ] = '0987654321' ;
   
cout << 'Antes de aplicar memmove a Destino: ' << comienzo << fin;
recuerda ( destino, origen, 6 ) ;
cout << 'Después de aplicar memmove to Destination:' << manos
   
    devolver 0 ;
}

 
Comenzamos a escribir la función main() para iniciar la ejecución de una línea de código real. En la línea 7, hay una matriz de tipo de dos caracteres de longitud 50 que se declara como 'src[50]' y 'dest[50]'. Usamos la instrucción 'cout' para imprimir el mensaje 'Antes de aplicar memmove() al destino:'. Luego, pasamos el parámetro 'dest' para imprimir el valor de la matriz 'dest'. Luego, la función memmove() se aplica a la variable de tipo de carácter declarada como 'src[50]' y 'dest[50]' para superponer una cierta cantidad de bytes desde el origen (src) hasta el destino (dest) con el número de 'recuento'. Esto identifica el número de bytes que se copian de 'src' a 'dest'. Como puede ver en la siguiente ilustración, declaramos el número de conteo “6”.

Después de eso, usamos la declaración 'cout' nuevamente para mostrar el mensaje, 'Después de aplicar memmove () al destino:', y pasamos la matriz variable 'dest' de tipo 'carácter'. Para detener la ejecución del programa, debemos utilizar una declaración de retorno al final del programa. Luego devolvemos 0 a la función principal, lo que indica que el programa se ejecutó con éxito y logró su objetivo.

Puede ver en el siguiente resultado del método memmove() que si hay superposición, por ejemplo, cuando el puntero inicial se mueve a la letra 6, el puntero sigue imprimiéndose y los siguientes caracteres se superpondrán. Se ejecutó este fragmento de código C++ y los resultados se muestran en la siguiente imagen:

Conclusión

En este artículo, aprendimos sobre la función memmove() en los lenguajes de programación C y C++. Hablamos sobre cómo funciona la función memmove() a través del ejemplo de C y C++ con una explicación detallada de cada línea de código. Esperamos que este artículo le resulte útil para desarrollar sus conocimientos sobre la función memmove() en C y C++.