Звучит так, будто вы пытаетесь сделать следующее
- Создать структуру одним методом, скажем main
- Передать ее второму методу, например,
- В качестве примера измените структуру и получите результаты, видимые в main
Если это так, то способ сделать это в C - передать struct
в качестве указателя на example
.
struct Node {
int data;
struct Node* pNext;
};
void example(struct Node* pNode) {
pNode->data = 42;
pNode->pNext = NULL;
}
int main() {
struct Node n;
example(&n);
printf("%d\n", n.data);
}
РЕДАКТИРОВАТЬ
Ответ на обновленный вопрос.
Чтобы увидеть результат изменения Node
, вы должны передатьNode*
.И соответственно, чтобы увидеть результат модификации Node*
, вам нужно передать Node**
.По сути, вам нужно передать еще один уровень косвенности, чем значение, которое вы хотите изменить / вернуть.
void insert(void* element, Node** ppRoot){
if (NULL == *ppRoot) {
Node* pTemp = malloc(sizeof(Node));
pTemp->data = element;
*ppRoot = pTemp;
}
}