带指针的形参实参问题(填空)
代码中的加粗下划线部分应该填什么,请详细解释一下,鄙人这部分比较弱代码的功能是顺序表的初始化和获取元素
#define MAXSIZE 20
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int ElemType;
typedef struct
{
int data ;
int last;
}sqlist;
/*线性表的初始化*/
sqlist * init_()
{
sqlist *L;//命名一个sqlist *类型的指针。
L=(sqlist*)malloc(sizeof(sqlist));
if(L!=NULL)
return L;
}
/*Getlem 获取元素操作*/
/*操作结果是用e返回表L中第i个元素的值,所以为int类型*/
int Getlem (sqlist L,int * e,int i)
{
if(L.last==0||i<1||i>L.last)
return ERROR;
*e=L.data;
return *e;
}
int main ()
{int x;
int i;
int *e;
sqlist *L;
L=init_();
L->data=1;
L->data=2;
L->data=3;
L->data=4;
scanf("%d",&i);//输入你想取得第i个元素
x=Getlem(*L, ,i);
printf("%d",x);
return 0;} 本帖最后由 昨非 于 2021-1-13 00:01 编辑
按照上下文的意思,应该是想要用e来充当参数然后将指针所指的值返回给x的
但是指针e未初始化,我刚刚试了试给e初始化未空指针
然后不报错了,但是x的访问值都是0,不理解,同问
我回个帖子 赚个鱼币,等个大佬 本帖最后由 jackz007 于 2021-1-13 11:19 编辑
int Getlem (sqlist L , int * e , int i)
{
if(L . last == 0 || i < 1 || i > L . last) return ERROR ;
根据此条件判断
必须为 L 的 last 成员赋值
int main (void)
{
. . . . . .
L -> data=4 ;
L -> last = 4 ; // 必须添加此句
scanf("%d", & i) ; // 输入你想取得第i个元素 帮顶下 蹲{:10_245:} 你们都有回帖奖励,为啥我没有? 我的运气,真的这么差吗? 我就不信这个邪 第四个帖子 第五个帖子 等大佬,赚个币 等大佬
等 萌新等个大佬,顺带挣个币 老王八我来白票鱼币了,钱拿走了 第一次来等个帅哥,想嫖个鱼币嘻嘻
页:
[1]