여기에 두 개의 구조체가 있습니다. struct 자체가 구조체를 가리 키도록 초기화하는 방법을 모르겠습니다. 이것이 가능한지 확실하지 않습니다.C의 구조체를 가리키는 구조체의 포인터
typedef struct __node
{
int value;
struct __node* left;
struct __node* right;
}setNode;
typedef struct __set {
setNode* root;
//mutex for this set (To be implemented)
}set;
나는 세트의 멤버를 초기화하고 싶지만 내가 set result
과 동일한 주소를 가리 키도록 result->root
을 얻기 위해 무엇을해야하는지 확실하지.
set* new_set()
{
set* result = malloc(sizeof(set));
result -> root = NULL; // Not sure???
}
루트에 대한 포인터를 가져 오려고합니다.
void someOther(set* s)
{
setNode* temp = s -> root;
//....
}
죄송합니다. 질문이 너무 막히면.
Additional Info
문제점 : 함수에서, 내가 나무 위로 가로 질러 가야 할 수 있도록 setNode* temp = someSet -> root;
이 있습니다. 즉, temp는 someSet의 루트를 가리켜 야합니다. 그렇다면 new_set 함수에서 result -> root
에 무엇을 할당해야합니까?
'__node'는 두 개의 연속 된 밑줄을 포함하고 있으므로 UB입니다. 그러지 마. – Bathsheba
@Bathsheba UB가 아니지만 그러한 이름은 유보됩니다. –
질문은 레이아웃과 무관합니다 ... –