返回结构体内定义的指针,子函数的头的返回类型的写法问题。
#include<stdio.h>#include<stdlib.h>
struct list{
int data;
struct list*nextPtr;
}; //创建结构体。
//创建链表。
struct list *createList(void)
{
int num;
struct list*headPtr,*lastPtr,*currentPtr;
headPtr=NULL;
lastPtr=NULL;
currentPtr=NULL;
//存储数字,直到出现-1停止。
scanf("%d",&num);
while(num!=-1)
{
currentPtr=malloc(sizeof(struct list));
if(currentPtr!=NULL)
{
currentPtr->data=num;
if(headPtr==NULL){
headPtr=currentPtr;
lastPtr=currentPtr;
}
else{
lastPtr->nextPtr=currentPtr;
lastPtr=currentPtr;
}
}
scanf("%d",&num);
}
lastPtr->nextPtr=NULL;
return headPtr;
}
这是一个子函数,为了创建链表。我想要返回一个结构指针,(定义了结构struct list),返回指针headPtr。
想请问大神,struct list *createList(void) 这样写这个子函数的头对吗?可以直接改写为list *createList(void)吗??
(C语言新手,一个寒假没有上机,生疏了,请大佬指点!)