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

10-11 22:42
查看更多