编译不过去的一段代码

fanxiaochuan 2011-11-18 10:44:26

#include<stdio.h>

#define MAX_SIZE 20
typedef int ElemType; // 元素类型

typedef struct Sqlist
{
ElemType List[MAX_SIZE];
int length;
}Sqlist;

int InitSqlist(int * p,Sqlist * data); //初始化线性表
int GetElem(Sqlist L,int i,int *e); //获得线性表中得元素
int Copy;
void main()
{
Sqlist data;
Sqlist * ptr;
int Copy,i; //Copy为返回要取的数值,i为要返回的数组下标
int *pointer;
int n;
ptr=&data; //ptr指向该结构体
data.length=5; //长度为5
InitSqlist(data.List,&data); //调用InitSqlist(),注意参数的传递值。
scanf("%d",&i);
int Copy = GetElem(Sqlist data,i,pointer);
printf("%d\n",Copy);
}
int InitSqlist(int * p,Sqlist * data)
{

int n; //n循环计数器
p=data->List;
for(n=0;n<5;n++)
{
scanf("%d\n",p++);
}
}

int GetElem(Sqlist L,int i,int *e)
{
int shu;
scanf("%d",&i);
e=L.List;
shu=*(e+i);
return shu;
}
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-11-18
  • 打赏
  • 举报
回复
在 vs2010 中编译

1 Copy 重定义
2 int InitSqlist(int * p,Sqlist * data) 无返回值
fanxiaochuan 2011-11-18
  • 打赏
  • 举报
回复
而且子函数返回值,赋值的时候 好像前边不能加Int
Copy = GetElem(data,i,&pointer);这样是正确的
int Copy = GetElem(data,i,&pointer);这样是错误的
jilianglijie 2011-11-18
  • 打赏
  • 举报
回复
#include<stdio.h>

#define MAX_SIZE 20
typedef int ElemType; // 元素类型

typedef struct Sqlist
{
ElemType List[MAX_SIZE];
int length;
}Sqlist;

#define true 1
#define false 0

int InitSqlist(int * p,Sqlist * data); //初始化线性表
int GetElem(Sqlist L,int i,int *e); //获得线性表中得元素
int Copy;
void main()
{
Sqlist data;
Sqlist * ptr;
int Copy,i; //Copy为返回要取的数值,i为要返回的数组下标
int pointer;
ptr=&data; //ptr指向该结构体
data.length=5; //长度为5
InitSqlist(data.List,&data); //调用InitSqlist(),注意参数的传递值。
scanf("%d",&i);
Copy = GetElem(data,i,&pointer);
printf("%d\n",Copy);
}
int InitSqlist(int * p,Sqlist * data)
{

int n; //n循环计数器
p=data->List;
for(n=0;n<5;n++)
{
scanf("%d\n",p++);
}
return true;
}

int GetElem(Sqlist L,int i,int *e)
{
int shu;
scanf("%d",&i);
e=L.List;
shu=*(e+i);
return shu;
}
true没有定义 gcc 通过
fanxiaochuan 2011-11-18
  • 打赏
  • 举报
回复
我把我原来的那个pointer指针初始化了
int * pointer = data.List;
形参改回pointer ,编译也没问题。
是不是必须得初始化你刚开始的指针才可以啊?
fanxiaochuan 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hnuqinhuan 的回复:]

C/C++ code

#include<stdio.h>

#define MAX_SIZE 20
typedef int ElemType; // 元素类型

typedef struct Sqlist
{
ElemType List[MAX_SIZE];
int length;
}Sqlist;

int InitSqlist(int * p,Sqlist * data……
[/Quote]

没问题,通过了,但是为什么呢?
無_1024 2011-11-18
  • 打赏
  • 举报
回复

#include<stdio.h>

#define MAX_SIZE 20
typedef int ElemType; // 元素类型

typedef struct Sqlist
{
ElemType List[MAX_SIZE];
int length;
}Sqlist;

int InitSqlist(int * p,Sqlist * data); //初始化线性表
int GetElem(Sqlist L,int i,int *e); //获得线性表中得元素
int Copy;
void main()
{
Sqlist data;
Sqlist * ptr;
int Copy,i; //Copy为返回要取的数值,i为要返回的数组下标
int pointer;
ptr=&data; //ptr指向该结构体
data.length=5; //长度为5
InitSqlist(data.List,&data); //调用InitSqlist(),注意参数的传递值。
scanf("%d",&i);
Copy = GetElem(data,i,&pointer);
printf("%d\n",Copy);
}
int InitSqlist(int * p,Sqlist * data)
{

int n; //n循环计数器
p=data->List;
for(n=0;n<5;n++)
{
scanf("%d\n",p++);
}
return true;
}

int GetElem(Sqlist L,int i,int *e)
{
int shu;
scanf("%d",&i);
e=L.List;
shu=*(e+i);
return shu;
}


fanxiaochuan 2011-11-18
  • 打赏
  • 举报
回复
总是提示这句话。“missing ';' before 'type' ”很费解。
机智的呆呆 2011-11-18
  • 打赏
  • 举报
回复
提示啥?
fanxiaochuan 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 anyidan 的回复:]

在 vs2010 中编译

1 Copy 重定义
2 int InitSqlist(int * p,Sqlist * data) 无返回值
[/Quote]

呵呵 还是VS2010 更加NB啊。

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧