给定,在调用的函数中,

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;

最佳答案

因为没有分配q内存,所以您需要先分配内存
q,然后将内容复制到q。

应当将&((**)-> items)传递给结构的memcpy地址,类似地
用于源结构

(要么)
将函数更改为callFunct1(arg_t * q)并可以如下调用

arg_t q;
callFunct1(&q);

关于c - 无法获取结构项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22483800/

10-11 22:59