这有什么区别:
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));