在vc++6.0下使用c语言编写创建线性表函数,错误很多,具体如下。 求高手指导!

#include<stdio.h>#defineMax100typedefstruct{intdata[Max];intlen;}Sqlist;intcSqlist(Sq... #include <stdio.h>
#define Max 100
typedef struct
{
int data[Max];
int len;
}Sqlist;
int cSqlist(Sqlist *&L,int a[],int n)
{
int i=0;
L=(Sqlist *)malloc(sizeof(Sqlist));
for(i=0;i<n;i++)
{
L.data[i]=a[i];
}
L.len=n;
return 1;
}
void display(Sqlist L)
{
int i;
for(i=0;L.len>i;i++)
{
printf("%d -> ",L.data[i]);
}
}
void main()
{
Sqlist L;
int a[5]={1,2,3,4,5};
int n=5;
cSqlist(L,a,n);
display(L);
}
展开
 我来答
百度网友f160a72
2012-11-13 · TA获得超过363个赞
知道小有建树答主
回答量:461
采纳率:0%
帮助的人:402万
展开全部
#include <stdio.h>
#include <stdlib.h> // malloc
#define Max 100
typedef struct
{
int data[Max];
int len;
}Sqlist;
int cSqlist(Sqlist **L,int a[],int n)
{
int i=0;
*L=(Sqlist *)malloc(sizeof(Sqlist));
for(i=0;i<n;i++)
{
(*L)->data[i]=a[i];
}
(*L)->len=n;
return 1;
}
void display(Sqlist L)
{
int i;
for(i=0;L.len>i;i++)
{
printf("%d -> ",L.data[i]);
}
}
void main()
{
Sqlist *L; // Sqlist L; 这一句已经申请了空间,所以改成指针,在 cSqlist()里面申请空间
int a[5]={1,2,3,4,5};
int n=5;
cSqlist(&L,a,n);//传入L的地址才能改变L的值
display(*L); //
}
loboho
2012-11-13 · TA获得超过506个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:411万
展开全部
int cSqlist(Sqlist &L,int a[],int n) // L定义为对象引用
{
int i=0;
//L=(Sqlist *)malloc(sizeof(Sqlist)); // 注掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
forever2z312
2012-11-13 · TA获得超过417个赞
知道小有建树答主
回答量:385
采纳率:0%
帮助的人:179万
展开全部
#include <stdio.h>
#include <malloc.h>
#define Max 100
typedef struct
{
int data[Max];
int len;
}Sqlist;

void cSqlist(Sqlist **L,int a[],int n) //L 是指向指针的指针主函数那边传过来的S是个指针
,取地址以后就是指针的指针。这里用要双重指针来接住他
{
int i=0;
if ((*L=(Sqlist *)malloc(sizeof(Sqlist)))==NULL)
{
printf("wrong");
return;
}

(*L)->len=n;
for(i=0;i<n;i++)
{
(*L)->data[i]=a[i];
}
printf("%d\n",(*L)->len);
}

void display(Sqlist *L)
{
int i;

for(i=0;i<L->len;i++)
{
printf("%d -> ",L->data[i]);

}
}
void main()
{
Sqlist *S;

int a[5]={1,2,3,4,5};
int n=5;

cSqlist(&S,a,n);//要传地址,不然它只在函数运行时候有效,函数运行完了以后它会失效。

display(S);
}

我在你程序的基础上改的。要用传地址的方式。
其实我也挺好奇的,我之前用了 一重指针,但是还是错。所以用二重指针,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式