【发布时间】:2014-10-08 19:47:36
【问题描述】:
我确定以前有人问过这个问题,但是在搜索了很长一段时间后,我在这个网站或任何其他网站上都找不到任何东西。
我无法获取我在函数中创建和修改的结构的值。代码看起来像:
struct node {
char name[35];
int employeeID;
struct node *next;
}
typedef struct node employee;
void insertInOrder(employee *head, employee *curr) {
if (head == NULL) {
*curr->next = *head;
*head = *curr;
} else {
if ((head->employeeID<curr->employeeID)&&(curr->employeeID <head->next->employeeID)) {
*curr->next = *head->next;
*head->next = *curr;
} else {
insertInOrder(head->next, curr);
}
}
}
void addEmployee(char name[], employee *head, employee *curr) {
int id;
scanf("%d", &id);
curr = malloc(sizeof(employee));
strcpy(curr->name, name);
curr->employeeID = id;
insertInOrder(head, curr);
}
int main(void) {
char name[35];
int quit = 1;
employee *head, *curr;
head = NULL;
printf("Enter data about the books: \n");
while (quit) {
scanf("%[^\n]%*c", title);
if (title[0] != '#') {
addBook(name, head, curr);
} else {
quit = 0;
}
}
在我的调试过程中,我的代码会迭代到我的所有函数中,但是一旦我在添加了我想要的所有数据后返回到 main,所有变量都是空的。我知道这与我使用或传递指针的方式有关,但是当我查看代码时,我不断得出一个合乎逻辑的结论,即我所拥有的应该做我想做的。请有人指出我的算法存在缺陷的地方。
【问题讨论】: