#include<stdio.h>#define maxsize 30typedef struct{ int num[maxsize]; int length;} sqlist,*sql;int main(){ printf("请输入顺序表的长度:"); int n; sqlist L; sql p,q;printf("你输入的顺序表为:\n); scanf("%d",&n); p=&L; q=scan(p,n); print(q);} sql scan(sql L,int n){ int i; for(i=0; i<n; i++) { L->length++; scanf("%d",&L->num[i]); }return L;}我想把这个结构体指针返回,可是报错不知道为什么,函数写得不对么,是要申请内存么(0-0)
3 回答
onemoo
TA贡献883条经验 获得超454个赞
这个代码在指针的使用上应该没有错。
问题可能出在 L 的成员 length 没有初值! 块作用域内的结构体变量和其他变量一样,没有显示初始化的话,其成员的初值是不确定的。
所以 scan 函数对指针的操作没有错,但是其直接对 length 自增恐怕无法正确表示数组中有效成员的个数。
慕移动6052691
TA贡献22条经验 获得超7个赞
1、print(q); 函数没有实现
2、scan要事先声明;或者把scan函数放在main函数前
3、printf("你输入的顺序表为:\n); 括号内少了一个引号
- 3 回答
- 1 关注
- 1492 浏览
添加回答
举报
0/150
提交
取消