我正在尝试将 const unsigned char*
转换为 char*
并制作副本。我尝试了下面代码的几种变体,但通常会出现内存异常。该函数驻留在用 C 编写的应用程序中。
下面的函数是我正在尝试创建的
//global variable
char* copiedValue;
void convertUnsignedChar(const unsigned char* message){
copiedValue = malloc(sizeof(message));
(void)memcpy(copiedValue, message, sizeof(message));
}
最佳答案
您的问题的很大一部分是 sizeof(message)
,它为您提供了指针的大小,而不是它所指向的内容。
将长度传递给函数,或者(如果数据是空终止字符串)使用 strlen
获取长度(但不要忘记为终止符添加一个!)或上述 strdup
函数(如果可用)。
关于c - 如何将 const unsigned char* payLoad 转换为 char* 并复制它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624583/