本文介绍了如何在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基础课程》。