有问题的功能:
struct node* findNext(struct node *root, struct node *ldr, int *p) {
// Check if there are nodes in the tree.
if(p == 0){
if (root != NULL) {
// correct organ/bt combo
if(cmpOrgan(root, ldr) == 1){
if (strcmp(root->organ.name, ldr->organ.name) != 0){
if(cmpDates(root, ldr) == 1){
p = 1;
return root;
}
// The leader has been in longer then root
if(cmpDates(root, ldr) == 2){
return findNext(root->left, ldr, p);
}
}
else{
findNext(root->left, ldr, p);
findNext(root->right, ldr, p);
}
}
if(cmpOrgan(root, ldr) == 2){
return findNext(root->left, ldr, p);
}
if(cmpOrgan(root, ldr) == 3){
return findNext(root->right, ldr, p);
}
}
}
return NULL;
}
我想在这部分打破这个递归函数:
if (strcmp(root->organ.name, ldr->organ.name) != 0){
if(cmpDates(root, ldr) == 1){
p = 1;
return root;
}
我尝试执行此操作的方法是扫描指向函数的全局指针,并在我希望函数中断时将其更改为 1。我的目标是在断点处返回当前根。这可能吗?我正在通过这样做初始化 main 中的指针:
int *p = 0;
当我尝试使用 *p = 1 设置值时,程序将崩溃。我很确定我缺少指针的基本知识,但我只是不知道什么,因为我还是编码新手。谁能帮我?还有另一种我不知道的更简单的方法吗?感谢您提前提供任何帮助。