【发布时间】:2011-02-10 06:08:03
【问题描述】:
#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;
}
这是给我带来问题的代码的简化版本。我正在尝试从 *list 作为参数传递的方法构造指针 *list。
我知道我可以通过将 void init(List *l) 更改为 void init(List **l) 来使其工作,但这是针对课堂教程的。我无法更改方法参数。我花了四个小时来解决这个问题。
我想确保在我与教授对质之前,没有办法让 void init(List *l) 工作。
提前致谢
【问题讨论】:
标签: c pointers parameters constructor struct