大家好,

我尝试使用链接列表准备学生信息系统。我创建了一个名为Course的脚本。用于插入过程;我将在函数main中调用void insertCourse(CourseNodePtr * cr,char *代码)。当我编译时,我看到这些错误。 “ insertCourse”的arg 2的类型不兼容。函数“ insertCourse”的参数太少。有人对此事发表评论吗?非常感谢..

/* Function Prototypes */
void insertCourse(CourseNodePtr* cr, char* code);

/* Main func starts here */

int main(void)
Course course_code;


switch (choice) {
             case 1:
                  insertCourse(&startPtr, course_code);
                  break;



/* Insert course function  */
void insertCourse(CourseNodePtr* cr, char* code)
{
CourseNodePtr newPtr;   /* New node pointer */
CourseNodePtr previousPtr;   /* previous node pointer in list */
CourseNodePtr currentPtr;    /* current node pointer in list */

newPtr = malloc( sizeof(Course) );   /* memory allocation for new node */

if (newPtr != NULL) {
           printf("Pls enter the code number of the course.\n");
           scanf("%s", &(newPtr->code));
           printf("Pls enter the course name.\n");
           scanf("%s", &(newPtr->name));
           printf("Pls enter the instructor name.\n");
           scanf("%s", &(newPtr->instructor));
           printf("Pls enter the term; Spring or Fall.\n");
           scanf("%s", &(newPtr->term));
           printf("Pls enter the year.\n");
           scanf("%s", &(newPtr->year));
           newPtr->coursePtr = NULL;

           previousPtr = NULL;
           currentPtr = *cr;

           while ((currentPtr != NULL)  && ( code  > currentPtr->code)) {
                 previousPtr = currentPtr;
                 currentPtr = currentPtr->coursePtr;
           }  /* End While */

           if ( previousPtr == NULL ) {
                newPtr->coursePtr = *cr;
                *cr = newPtr;
           }   /* End if */
           else {
                previousPtr->coursePtr = newPtr;
                newPtr->coursePtr = currentPtr;
           }  /* End else */
    } /* End if */

    else {
         printf( " %c could not be inserted. Memory not enough...\n", code);
    }  /* End else */
} /* End function insert */

最佳答案

insertCourse的第二个参数期望类型为*char,而您正在传递类型为Course

insertCourse(&startPtr, course_code);
------------------------^ here

10-04 20:50