Swi*_*iss 20 c struct pointers
我将指向结构的指针传递给函数时遇到了问题.我的代码基本上如下所示.在main函数中调用modify_item后,stuff == NULL.我想要东西是一个指向项目结构的指针,元素等于5.我做错了什么?
void modify_item(struct item *s){
struct item *retVal = malloc(sizeof(struct item));
retVal->element = 5;
s = retVal;
}
int main(){
struct item *stuff = NULL;
modify_item(stuff); //After this call, stuff == NULL, why?
}
Run Code Online (Sandbox Code Playgroud)
Dou*_*rie 22
void modify_item(struct item **s){
struct item *retVal = malloc(sizeof(struct item));
retVal->element = 5;
*s = retVal;
}
int main(){
struct item *stuff = NULL;
modify_item(&stuff);
Run Code Online (Sandbox Code Playgroud)
要么
struct item *modify_item(void){
struct item *retVal = malloc(sizeof(struct item));
retVal->element = 5;
return retVal;
}
int main(){
struct item *stuff = NULL;
stuff = modify_item();
}
Run Code Online (Sandbox Code Playgroud)