我正在尝试将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/