C语言 创建原始列表的子列表



我试图使一个函数需要两个参数位置从列表和原始列表,然后复制索引数到列表。我还包括了列表和头部的Struct。我得到EXC_BAD_ACCESS错误,我注释了这行。

代码:

struct node_struct {
    Item item;
    link next;
};
struct list_struct {
    link first;
    int length;    
};
list sublist(list A, list pos_list) {
    int index = 0;
    link tempForindex = malloc(sizeof *tempForindex);
    link temp2 = malloc(sizeof *temp2);
    list finale = malloc(sizeof *finale);
    link temp3 = malloc(sizeof *temp3);
    tempForindex = pos_list->first;
    temp2 = A->first;
    temp3 = finale->first;
    int counter = 0;
    while(tempForindex->next != NULL)
    {
        index = tempForindex->item;//EXC_BAD_ACCESS code1
        counter = 0;
        while(temp2->next != NULL)
        {
            if (counter == index)
            {
                temp3->item = temp2->item;
                temp2 = A->first;
                temp3 = temp3->next;
                break;
            }
            temp2 = temp2->next;
            counter++;
        }
        tempForindex = tempForindex->next;
    }
    return finale;
}

这一切都是无可救药的缺陷。

你需要用链表找到规律。结构很好,但是代码在指定位置崩溃的事实对我来说表明pos_list没有正确设置。

使用模式

遍历列表
list mylist;
link ptr;
for(ptr = mylist->first; ptr != NULL; ptr = ptr->next)
{
   /* loop body */
}

现在编写一个测试函数来打印两个参数并确定它们是否有效。

相关内容

  • 没有找到相关文章

最新更新