VS2012 Error:不存在從“——”到“——*”的適當轉換函數—已解決

源代碼功能爲建立並輸出鏈表。《C程序設計》P316。

源代碼如下:

#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct Student)
struct Student
{
long num;
float score;
struct Student* next;
};
int n;
struct Student* creat()
{
struct Student* head;
struct Student* p1,*p2;
n = 0;
p1 = p2 =(struct Student*)malloc(LEN);
scanf_s("%ld,%f",&p1->num,&p1->score);
head = NULL;
while (p1 -> num!= 0)
{
n = n + 1;
if(n == 1)head = p1;
else p2 -> next = p1;
p2 = p1;
p1 = (struct Student*)malloc(LEN);
scanf_s("%ld,%f",&p1 -> num,&p1 -> score);
}
p2 -> next = NULL;
return(head);
};
void print(struct Student head )
{
struct Student* p;
printf("\nNow,These %d records are:\n",n);
p = head;
if(head != NULL)
do
{
printf("%ld %5.1f\n",p->num,p->score);
p = p->next;
} while (p != NULL);
}
void main()
{
struct Student* head;
head = creat();
print(head);
}

編譯時出現如下錯誤:


查找後發現是head忘了加*。將void print(struct Student head )改爲void print(struct Student *head ),則編譯時順利通過。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章