【发布时间】:2014-06-20 19:55:04
【问题描述】:
我有一个函数,我将向它传递一个结构 ID,它会返回一个字符串。 我将传递一个指针来存储名称字符串,该指针将由调用的函数分配内存。
int ConvertIDToName(void *id, void *name, size_t *size)
{
int status = 0;
unsigned char *xIDname = "user4.microsoft.com";
*name = (unsigned char*)malloc(30);
memcpy(*name, xIDName, *size);
...
return(0);
}
main(int argc, char* argv[])
{
struct ID_t idObj ={1,5, {0,0,0,0,0,5}};
unsigned char* IDName = NULL;
UINT32 IDNameSize = MAX_CHAR;
ConvertIDToName(&idObj, &IDName, (size_t *)&IDNameSize);
return(0);
}
函数 ConvertIDToName() 未能将分配的内存地址存储在 void 指针中。 我无法在指针中分配内存,它给了我函数 ConvertIDToName() 的第三条语句的错误:
warning: dereferencing âvoid *â pointer
test_code.c:683: error: invalid use of void expression
我做错了什么以及如何纠正?
【问题讨论】: