-1

Я работаю на дополнительный кредитный проект для класса и здесь спецификации:Ошибка при использовании Linked List в программе C

  • Вы напишете программу переменного тока (вы должны использовать инструмент проектирования, но я не хочу чтобы увидеть его)
  • Программа будет использовать динамическую память для создания связанного списка (НЕ РАЗРЕШАЕТСЯ АРХИТЕКТОР)
  • В программе будет храниться неограниченное количество записей учащихся (ограничено только ОЗУ).
  • Запись студента будет состоять из имени студента и возраста ... вам может потребоваться добавить еще два поля, чтобы сделать эту работу.
  • Программа предоставит пользователю возможность добавлять записи.
  • Программа предоставит пользователю возможность отображать ВСЕ записи (только на экране, без необходимости).
  • Программа нуждается в способе выхода.

У меня есть весь код, но я получаю эту досадную ошибку. Это именно то, что я вижу на моем компьютере:

1>linkedProject.obj : error LNK2019: unresolved external symbol _add referenced in function _main 
1>E:\Spring 2013\C Programing Class\linkedProject\Debug\linkedProject.exe : fatal error LNK1120: 1 unresolved externals 

И вот мой код:

#include<stdlib.h> 
#include<stdio.h> 
#include<malloc.h> 
#include<conio.h> 
#include<string.h> 
#include<ctype.h> 
#define pause system ("pause") 

// prototype variables 
struct node * initnode(char*, int); 
void printnode(struct node*); 
void printflist(struct node*); 
void add(struct node*); 
struct node* searchname(struct node*, char*); 

struct node{ 
    char name[20]; 
    int age; 
    struct node *next; 
}; 

struct node *head = (struct node*) NULL; 
struct node *end = (struct node*) NULL; 

struct node* initnode(char *name, int age){ 
    struct node *ptr; 
    ptr = (struct node*) calloc(1, sizeof(struct node)); 
    if(ptr == NULL) 
     return (struct node*) NULL; 
    else { 
     strcpy(ptr->name, name); 
     ptr->age = age; 
     return ptr; 
    } 
} 

void printnode(struct node *ptr) { 
    printf("Name -> %s\n", ptr->name); 
    printf("Age -> %d\n", ptr->age); 
} 

void printlist (struct node *ptr) { 
    while (ptr != NULL) { 
     printnode(ptr); 
     ptr = ptr->next; 
    } 
} 



main() { 
    char name[20]; 
    int age, choice = 1; 
    struct node *ptr; 
    while(choice != 3){ 
     system("cls"); 
     printf("1. Add a name\n"); 
     printf("2. List all names\n"); 
     printf("3. Exit"); 
     printf("\nEnter Menu Selection: "); 
     scanf("%d", &choice); 
     switch(choice) { 
     case 1: printf("\nEnter a name: "); 
      scanf("%s", &name); 
      printf("Enter age: "); 
      scanf("%d", &age); 
      ptr = initnode(name, age); 
      add (ptr); 
      break; 
     case 2: printlist(head); 
      break; 
     case 3: exit(3); 
     default: printf("Invalid Entry"); 
     }// end of switch 


    }// end of while 

}// end of main 

Вся помощь очень ценится !!

+0

Ответ - это что-то вроде 'add (ptr);'? – 2013-04-10 06:25:36

ответ

1

Компонент сообщает вам, что он не может найти функцию add.

Вы заявили:

недействительной надстройки (STRUCT узел *)

в своих прототипах, но вы не определили его в любом месте.

1

Вы объявляете метод add в prototype. и add(ptr) call в основном методе. Но я не могу видеть add method definiton. Вот почему компилятор поднимает ошибку компоновщика.