📜  在运行时在C中设置无符号char数组的值

📅  最后修改于: 2021-05-28 03:35:42             🧑  作者: Mango

本文介绍了如何在C中运行时设置或更改unsigned char数组的值。

鉴于:
假设我们有一个大小为n的无符号char数组

unsigned char arr[n] = {};

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

去做:
我们想在运行时设置或更改此数组的值。

例如,我们要制作数组

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

解决方案:
这可以借助memcpy()方法来实现。 memcpy()用于将一个内存块从一个位置复制到另一个位置。在字符串.h中声明

句法:

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

下面是上述程序的实现:

// C program to set the value
// of unsigned char array during runtime
  
#include 
#include 
  
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;
}

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。