错误C2440初始化无法将void转换为typ

时间:2016-04-21 00:26:19

标签: c malloc structure

class Booking: NSObject {
    var entityId: String? //Kinvey entity _id
    var name: NSString?
    var email: NSString?
    var seats: NSString?
    var date: NSDate?

    override func hostToKinveyPropertyMapping() -> [NSObject : AnyObject]! {
        return [
            "entityId" : KCSEntityKeyId, //the required _id field
            "name": "name",
            "email": "email",
            "seats": "seats",
            "date": "date"  //You also had an extra comma after the last item of this dictionary.
        ]
    }
}

这是我的功能,问题就行了 “ListNodePtr newPtr = malloc(sizeof(ListNode));” 它说Cannoy将void转换为ListNotePtr 然后它说 IntelliSense:类型“void *”cannoy的值用于初始化“ListNodePtr”类型的实体

我有点困惑,因为我直接从我的演讲幻灯片中复制了这个功能,但我似乎无法使它工作。谁知道发生了什么事?此函数和其他函数在main(void)中调用。 提前谢谢!

2 个答案:

答案 0 :(得分:0)

似乎是您正在将空类型值分配给ListNodePtr变量。 如果使用C ++编译器进行编译,则需要执行显式强制转换:

void insert(ListNodePtr *sPtr, char value)
{
    ListNodePtr newPtr = (ListNodePtr)malloc(sizeof(ListNode));
// ...

这里有一个类似的问题:https://stackoverflow.com/a/15106036/5810934

答案 1 :(得分:0)

这将有望工作

ListNodePtr* newPtr = static_cast<ListNodePtr*>(malloc(sizeof(ListNode));