小编Bro*_*s B的帖子

C - 无法启动作为参数传递的指针

#include <stdio.h>
#include <stdlib.h>
typedef struct {
    unsigned length;
} List;
void init(List *l) {
    l = (List *) malloc(sizeof(List));
    l->length = 3;
}
int main(void) {
    List *list = NULL;
    init(list);
    if(list != NULL) {
        printf("length final %d \n", list->length);
        return 0;
    }
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

这是代码的简化版本,它给我带来了问题.我试图*list*list作为参数传递的方法构造指针.

我知道我可以void init(List *l)通过更改它来完成工作,void init(List **l)但这是一个课程教程.我无法更改方法参数.我花了四个小时研究这个问题.

我想确保void init(List *l)在面对我的教授之前没有办法做工作.

提前致谢

c parameters constructor struct pointers

5
推荐指数
1
解决办法
155
查看次数

标签 统计

c ×1

constructor ×1

parameters ×1

pointers ×1

struct ×1