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


Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Recommended Posts:

    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.