我试图将多米诺骨牌故事添加到链接列表中,但是每次我调用函数<!-- This button has red background but not red text -->
<button class="Button_error_ax7yz">Error Button</button>
时,头总是停留在var
aResolution : JPoint;
begin
aResolution := TJPoint.Create;
TAndroidHelper.Display.getRealSize(aResolution);
end;
上:
add_domino(struct Domino *list, int a ,int b)
答案 0 :(得分:1)
要么返回更新的头指针,然后像这样使用它:
struct Domino* list = NULL;
list = add_domino(list, 1, 2);
或者将指针传递给指针,然后像这样使用它:
struct Domino* list = NULL;
add_domino(&list, 1, 2);
此外,您的函数不会处理不足的内存。
接下来,sizeof *pointer
胜过sizeof(TYPE)
,因为重复容易出错,尤其是在编译器不检查不匹配的情况下。
最后,请考虑在开头而不是结尾处添加,以避免重复遍历整个列表。如果需要,可以在最后反转列表,这是O(n)恒定空间操作。
答案 1 :(得分:0)
您缺少带有更新的指向头部的返回的信息。
struct Domino* add_domino(struct Domino *list, int a ,int b) {
struct Domino *D = malloc(sizeof(struct Domino));
D->a = a;
D->b = b;
D->next = NULL;
if(list == NULL) {
list = D;
return list;
} else {
struct Domino *p;
p = list;
while(p->next != NULL) {
p = p->next;
}
p->next = D;
}
return list;
}