C编译错误:转换为请求的非标量类型

时间:2013-07-04 07:18:20

标签: c string syntax

在C中,我尝试分配一个字符串:

void addressItem_icon_download_callback(const char* res_name, 
                                        int success, 
                                        void *context, 
                                        char *last_modified){

    char *icon = ((AddressItem_Callback_ContextType)context)->Icon;
}

并收到此错误:

conversion to non-scalar type requested

错误意味着什么,我该如何解决?

2 个答案:

答案 0 :(得分:3)

假设AddressItem_Callback_ContextType是带有字段图标(char*

的结构
typedef struct
{
  char *Icon;
}AddressItem_Callback_ContextType;

尝试

char *icon = ((AddressItem_Callback_ContextType*)context)->Icon;

首先,您必须将上下文转换为指针AddressItem_Callback_ContextType* 然后只有你可以使用“ - >”

访问该字段

答案 1 :(得分:0)

你确定AddressItem_Callback_ContextType是apointer类型吗?您可以将指针类型(此处为上下文)强制转换为另一种指针类型。

可能需要将上下文转换为(AddressItem_Callback_ContextType *)。