首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现内核链接列表接口时出错

实现内核链接列表接口时出错
EN

Stack Overflow用户
提问于 2013-11-07 20:24:29
回答 1查看 161关注 0票数 1

我正在尝试使用linux(list.h)的内核实现,但是我一直得到以下错误:- ->的无效类型参数(有'int')

代码语言:javascript
复制
struct klist
{
 int data;
 struct list_head list;
};

int main()
{
 int i;
 struct klist *_lptr;
 LIST_HEAD(klist_head);
 for(i=0;i<10;i++)
 {
  _lptr=(struct klist*)malloc(sizeof(struct klist));
  _lptr->data=i;
 }
 list_for_each_entry(_lptr,&klist_head,list)
 {
  printf("%d\n",_lptr->data);
 }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-08 11:04:26

我已经编译并运行了您的代码,没有错误报告。(gcc 4.6.3,库本图12.04)

我也在下面写了一个。

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include "list.h"

typedef struct klist{
    int data;
    struct list_head list;
}klist;

int main()
{
    LIST_HEAD(klist_head);

    /* allocate the list */
    int i = 0;
    klist *_lptr = NULL;
    for(i = 0; i < 10; i++){
        _lptr = (klist*) malloc(sizeof(klist));
        _lptr->data = i;
        list_add(&_lptr->list, &klist_head);
    }

    /* print the list */
    list_for_each_entry(_lptr, &klist_head, list){
        printf("%d\n", _lptr->data);
    }

    /* free the list */
    struct list_head *pos = NULL, *temp = NULL;
    list_for_each_safe(pos, temp, &klist_head){
        _lptr = list_entry(pos, klist, list);
        list_del(pos);
        free(_lptr);
    }

    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19845954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档