无法获取结构项

时间:2014-03-18 15:26:57

标签: c struct kernel

在名为

的函数中给出
void callFunct1 (arg_t **q) {
  if (t==1) // 
   *q = NULL;
  else
   memcpy((*q)->items, listOfContents, size of listOfContents); // listOfContents is const static, no memcpy required
};
EXPORT_SYMBOL(callFunct1);

给定t == 0

我如何确保memcpy获取内容?

arg_t* q; 
                                        //
callFunct1 (&q);
    //not able to obtain from here (q->items)

arg_t只是一个结构。

typedef struct {
  list items[100];
} arg_t;

typedef struct {
  int contents;
} list;

1 个答案:

答案 0 :(得分:1)

  1. 因为没有分配q内存所以你需要先分配内存forr q然后将内容复制到q。

    应该传递结构的memcpy地址&((* q) - > items)和类似的 对于源结构

    (OR)

  2. 将函数更改为callFunct1(arg_t * q),可以按以下方式调用

    arg_t q;
    callFunct1(& q);