马洛克之前的指针



这有什么区别:

tElemPtr novyPrvok = (tElemPtr *)malloc(sizeof(tElemPtr));

而这个:

tElemPtr novyPrvok = malloc(sizeof(tElemPtr));

我想在 插入第一 函数中使用它,以便在列表的开头插入第一个元素。因为,如果我在malloc前面没有那个指针,Xcode告诉我这很好,但我不能使用"novyPrvok->data">

void InsertFirst (tList *L, int val) {  
tElemPtr novyPrvok = (tElemPtr *)malloc(sizeof(tElemPtr));
if(novyPrvok == NULL)
Error();
novyPrvok->data = val;
novyPrvok->ptr = L->First;
L->First = novyPrvok;              
}

无需强制转换 malloc return -> 我是否投射 malloc 的结果?

顺便说一句,你的代码似乎是错误的;由于tElemPtr似乎是指针上的typedef,我希望malloc是:

tElemPtr novyPrvok = malloc(sizeof(*novyPrvok));

你的malloc是错误的,它只为指针分配空间。之后,一切都是未定义的行为。应该是

tElemPtr novyPrvok = (tElemPtr *)malloc(sizeof(*tElemPtr));

最新更新