Set value of unsigned char array in C during runtime

This article explains how to set or change the value of unsigned char array during runtime in C.

Given:
Suppose we have an unsigned char array of size n

unsigned char arr[n] = {};

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

To do:
We want to set or change the values of this array during runtime.



For example, we want to make the array

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

Solution:
This can be achieved with the help of memcpy() method. memcpy() is used to copy a block of memory from a location to another. It is declared in string.h

Syntax:

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

Below is the implementation of the above program:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.