代码如下:
/* set.h */
struct setElement{
char *element;
setElement *next;
};
typedef struct setElement *Set; //Set is now the equivalent of setElement*
Set a;
setInit(&a);
/* setInit function declaration @ setInit.c */
int setInit(Set *a){
(*a)->element = "asdf"; //results in a seg fault
}
尝试 malloc 'a' 有效,但如果我尝试访问集合 'a' 中的任何成员都不起作用。我知道我正在将 main() 函数中的集合的引用传递给 setInit,所以我相信 setInit 中包含的指针正在寻址 main() 函数中的“Set a”分配的内存,所以 malloc 不会不需要...
恩诺。帮助表示赞赏:)