静态链表数组的问题
程序如下:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 6
#define MAX_SIZE 100
typedef char Elemtype[N];
#define Linefeed printf("\n")
typedef struct
{
Elemtype data;
int cur;
}node,SLinklist[MAX_SIZE];//定义结构体节点node,数组SLinklist[100]
SLinklist creat_slist()
{
char s1[N];
SLinklist s;
node * p=s;//定义指针p指向数组首地址(但编译时出现错误信息:error C2090: function returns array)
int i,j;
int len;
char ch1;
do
{
printf("请输入静态链表的长度:len=");
if(len<0 || len>=100)
{
printf("你输入的len 有误!\n");
printf("是否继续输入!(y,n):");
fflush(stdin);
scanf("%c",&ch1);
}
if(ch1=='n')
{
printf("你选择退出输入!\n");
printf("程序终止!\n");
exit(-1);
}
}while(ch1!='n');
s[0].data[0]='\0';
s[0].cur=1;
printf("请输入静态链表的%d个元素:\n",len);
for(i=1;i<=len;i++)
{
printf("请输入第%d个元素的字符串:",i);
fflush(stdin);
gets(s1);
strcpy(s[i].data,s1);
s[i].cur=i+1;
}
s[i--].cur=0;
return p;
}
void traverse_list(SLinklist s)
{
int i;
i=s[0].cur;
printf("静态链表输出如下:\n");
while(i)
{
printf("%s ",s[i].data);
i=s[i].cur;
}
Linefeed;
}
int main(void)
{
node * s;
s=creat_slist();
traverse_list(s);
return 0;
}
这是我个人的理解,不明白错误的具体原因,希望有人把这个地方说清楚点,谢谢!