给定,在调用的函数中,
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/