Хотелось бы получить помощь в следующем вопросе. У меня есть структура Node, и я хочу изменить ее внутренности, используя какой-то метод. и я хочу распечатать содержимое измененной структуры внутри моего основного метода. как мне изменить структуру и увидеть измененное значение в моей основной, не возвращая узел в качестве возвращаемого значения. Я думаю, это можно решить, передав struct Node в качестве указателя, а затем отредактировав его. как правильно это сделать?
Например:
typedef struct Node{
struct Node * right;
struct Node * left;
void * data;
}Node;
void insert(void * element, Node* root){
if(root==NULL){
root=(Node*)malloc(sizeof(Node));
root->data=element;
}
}
int main(){
Node a;
int b=8;
insert(&b,&a);
printf("%d",*(int*)a.data);
return 0;
}
printf печатает не 8, а 1 (думаю, какой-то мусор)
main
. С двойным указателем вы передаете копию двойного указателя, но он по-прежнему указывает на тот же указатель, что и значение в main. Поэтому, когда вы меняете указанное значение, оно видно обоим методам. 07.02.2012