建立动态表的问题噻,很经典的
#include<stdio.h>#include<stdlib.h>
#define listchushi 100
#define listxingjia 10
typedef struct sqlist
{
int *elem;
int length; //数组已经有的长度
int holdlength; //数组已经分配的长度
}sqlist,*sqlistp;
void init_sqlist(sqlist L) //构造一个空的线性表
{
L.elem=(int*)malloc(listchushi*sizeof(int)); //只是存储空间,嗯所以算的是字节吧
if(!L.elem) //29
printf("the sqlist is empty");
L.holdlength=listchushi;
L.length=0;
} //到时候把这个程序改一下,变成可动态增加的
void sqlist_disput(sqlist L) //输出线性表的函数
{
int n,i,*p;
n=L.length;
p=L.elem;
for(i=0;i<=n;i++)
{
printf("%d ",*p);
p++;
}
}
void main()
{
int i,n,*p;
sqlist L;
p=L.elem;
printf("请输入有序顺序表的长度:\n");
scanf("%d",&(L.length));
n=L.length;
printf("请依次输入表中各个元素:\n");
for(i=0;i<n;i++)
{
scanf("%d",p);
p++;
}
sqlist_disput(L);
}
在vc 2008环境下运行的,怎么都过不了,新手啊,老师提示scanf有错,难道不能用指针形式吗?如果错误在大神们眼中很简单,尽管喷,只求帮忙告诉一下原因,谢谢!