首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求C语言程序编译中出现的有关问题~

2012-03-07 
求C语言程序编译中出现的问题~~#includestdio.h#includestdlib.h//malloc文件要包含的头文件#define L

求C语言程序编译中出现的问题~~
#include<stdio.h>
#include<stdlib.h>//malloc文件要包含的头文件
#define LIST_INSTSIZE 50
typedef char DataType;
typedef struct //线性表的动态分配顺序存储结构
{
DataType *elem;
int length;
int listsize;
}SepList;
int InitSepList(SepList *L) //构造一个空的线性表
{
L->elem=(DataType*)malloc((LIST_INSTSIZE+1)*sizeof(DataType));
if(!L->elem)
return 0;//返回空间不成功
L->length=0;
L->listsize=LIST_INSTSIZE;
return 1;
}
int one(SepList *L) //未输入线性表中的数据,功能1
{
int i,a; //定义a变量,代表数据个数,i是循环变量
printf("请先输入顺序表的数据个数,然后输入数据,完成顺序表的初始化\n");
printf("数据个数为:");
scanf("%d",&a);
printf("\n");
printf("开始输入数据,中间用空格隔开。");
for(i=1;i<=a;i++)

  if(L->listsize-L->length<=0) //先判断空的线性表是否构造成功
{
  L->elem=(DataType*)malloc((LIST_INSTSIZE+1)*sizeof(DataType));  
if(!L->elem)
return 0;
L->length=0;
L->listsize=LIST_INSTSIZE;
return 1;
}
scanf( "%d ", L->elem+L->length-1); //开始循环输入数,此时,表的长度为用户输入的数据个数,即L->length=a
}
printf("如果想看你输入的线性表,请选择7号功能。\n");
return 1;
}
int main()
{  
SepList mylist;
int InitSepList(SepList *L); //构造空的线性表的函数的调用
  InitSepList(mylist); //给函数实参,先构造一个空表
  int one(SepList *L) ;
one(mylist);
printf("\n\n\n\n");
printf("\n\t\t\t********************************");
printf("\n\t\t\t* 1-------顺序表初始化 *");
  printf("\n\t\t\t* 2-------插入 *");
  printf("\n\t\t\t* 3-------删除 *");
  printf("\n\t\t\t* 4-------求表长 *");
printf("\n\t\t\t* 5-------按值查找 *");
printf("\n\t\t\t* 6-------读取元素 *");
printf("\n\t\t\t* 7-------显示线性表 *");
printf("\n\t\t\t* 0-------退出 *");
}


这是程序的一部分,在调试的过程中出现了
D:\我的文档\桌面\数据结构\数据结构.cpp(48) : error C2664: 'InitSepList' : cannot convert parameter 1 from 'SepList' to 'SepList *'
  No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
这个问题,可是我改来改去,错得越来越多了,解决不了!!希望大家帮忙看看,指出错误,帮忙改正!!感激不尽啊!

[解决办法]
说的很清楚了阿,48行,该传递SepList指针的地方你传了一个值
[解决办法]
one(mylist);
换成one(&mylist);

热点排行