【发布时间】:2019-01-08 12:16:21
【问题描述】:
我正在尝试将 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));
}
【问题讨论】:
-
为什么需要“转换”数据?你需要修改它吗?虽然不在标准 C 中(但在其他标准中),但您可能有一个
strdup函数,它可能会执行您想要的操作(如果内容是字符串)。哦,别忘了在某个时候free数据,否则你会发生内存泄漏。 -
为什么需要转换指针?如果您必须删除
const限定符,那么您的系统设计很可能已损坏,因为它不是const-正确的。
标签: c malloc sizeof memcpy const-char