创建单链表遇到困难了

ST creat_list()这一行显示error: conflicting types for 'creat_list'|怎么办?找半天没找到0.0
求解答+.+

#include
#include

typedef struct Student{
struct Student* next;
int cnt;
}st,*ST;

ST creat_lsit();
void traverse_list();

int main(void){
 ST students;
 students = creat_list();
 traverse_list(students);
return 0;
}


ST creat_list(){
int len;
int val;
printf("输入链表长度");
scanf("%d",&len);
ST pHead;
pHead = (ST)malloc(sizeof(st));
ST pTail;
pHead = pTail;
if(pHead = NULL){
    printf("false1!");
    exit(-1);
}
pTail->next = NULL;
for(int i=0;iscanf("%d",&val);
    ST pNew = (ST)malloc(sizeof(st));
    if(pNew = NULL){
        printf("false2!");
        exit(-1);
    }
    else{
        pNew->cnt = val;
        pTail->next = pNew;
        pNew->next = NULL;
        pTail = pNew;
    }

}
return pHead;
}
void traverse_list(ST pHead){
while(pHead->next != NULL){
    printf("%d  ",pHead->cnt);
    pHead = pHead->next;
}
}


修改如下,供参考:

#include<stdio.h>
#include<malloc.h>

typedef struct Student{
    struct Student* next;
    int cnt;
}st,*ST;

ST creat_list();
void traverse_list(ST pHead);
//void traverse_list();  修改

int main(void)
{
    ST students;
    students = creat_list();
    traverse_list(students);

    return 0;
}

ST creat_list()
{
    int len;
    int val;
    printf("输入链表长度");
    scanf("%d",&len);
    ST pHead;
    pHead = (ST)malloc(sizeof(st));
    ST pTail;
    pHead = pTail;
    if(pHead == NULL){ //if(pHead = NULL) 修改
        printf("false1!");
        exit(-1);
    }
    pTail->next = NULL;
    for(int i=0;i<len;i++){
        scanf("%d",&val);
        ST pNew = (ST)malloc(sizeof(st));
        if(pNew == NULL){     // if(pNew = NULL) 修改
            printf("false2!");
            exit(-1);
        }
        else{
            pNew->cnt = val;
            pTail->next = pNew;
            pNew->next = NULL;
            pTail = pNew;
        }
    }
    return pHead;
}
void traverse_list(ST pHead){
    while(pHead->next != NULL){
         printf("%d  ",pHead->next->cnt);
         //printf("%d  ",pHead->cnt);   修改
         pHead = pHead->next;
    }
}

img

根本原因在这里:


if(pHead = NULL){
    printf("false1!");
    exit(-1);
}

注意了,你的if 里面是赋值运算,返回为 true,所以,直接 exit了