Establecer el valor de la array de caracteres sin firmar en C durante el tiempo de ejecución

Este artículo explica cómo establecer o cambiar el valor de la array de caracteres sin firmar durante el tiempo de ejecución en C.

Dado:
supongamos que tenemos una array de caracteres sin firmar de tamaño n

unsigned char arr[n] = {};

// currently arr = {'', '', '', ...}

Para hacer:
Queremos establecer o cambiar los valores de esta array durante el tiempo de ejecución.

Por ejemplo, queremos hacer la array

arr = {'1', '2', '3', ...}

Solución:
Esto se puede lograr con la ayuda del método memcpy() . memcpy() se usa para copiar un bloque de memoria de una ubicación a otra. Se declara en string.h

Sintaxis:

// Copies "numBytes" bytes from address "from" to address "to"
void * memcpy(void *to, const void *from, size_t numBytes);

A continuación se muestra la implementación del programa anterior:

// C program to set the value
// of unsigned char array during runtime
  
#include <stdio.h>
#include <string.h>
  
int main()
{
  
    // Initial unsigned char array
    unsigned char arr[3] = { 0 };
  
    // Print the initial array
    printf("Initial unsigned char array:\n");
    for (size_t i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
        printf("%c ", arr[i]);
    }
    printf("\n");
  
    // Using memcpy() to change the values
    // during runtime
    memcpy(arr,
           (unsigned char[]){ '1', '2', '3' },
           sizeof arr);
  
    // Print the updated array
    printf("Updated unsigned char array:\n");
    for (size_t i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
        printf("%c ", arr[i]);
    }
  
    printf("\n");
    return 0;
}

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *