我确信之前已经询问过这一点,但在搜索相当长的一段时间后,本网站或其他任何关于它的内容都找不到。在功能未初始化的情况下初始化链接列表结构
我很难得到我在函数中创建和修改的结构的值。代码看起来是这样的:
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;
}
}
在我调试,我的代码迭代到我所有的功能,但一旦我将所有我想要的数据后回到主,所有的变量都是空的。我知道它与我使用或传递指针的方式有关,但是当我查看代码时,我总是会得出合乎逻辑的结论,即我拥有的应该按照我的意愿去做。请有人指出我的算法存在缺陷。
这是来自旧代码的工件,谢谢指出。我减少了我的实际代码,使其更简单,更易读。 – brostone51 2014-10-08 20:00:38