在c中2个unsigned char*之间的memcpy

use*_*003 2 c memcpy

如何使用memcpy两个指针复制使用a,b两者都是unsigned char *:

  1. a 指向充满数据的内存(unsigned char)
  2. b 甚至没有分配

如何复制ab使用memcpy?第三个参数memcpy需要a以字节为单位指向的内存大小; 怎么弄明白?

sel*_*bie 5

unsigned char* b = (unsigned char*)malloc(length_of_a);
memcpy(b, a, length_of_a);
Run Code Online (Sandbox Code Playgroud)

当然,我不能告诉你如何获得"a"的长度.您无法可靠地调用memcpy如果您不知道或不将其作为变量.否则,任何调用memcpy的尝试本质上都是不安全的.

你真的想做什么?

完全可能"a"根本不是数组.在这种情况下,您不需要memcpy:

char b = '\0';
if (a != NULL)
{
    b = *a;
}
Run Code Online (Sandbox Code Playgroud)