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

顺序表插入遇到一点麻烦.该怎么解决

2012-02-25 
顺序表插入遇到一点麻烦...typedefstruct//定义结构体{int*elemintlengthintlistsize}SqListvoidinitl

顺序表插入遇到一点麻烦...
typedef   struct     //   定义结构体
{
        int   *elem;
        int   length;
        int   listsize;
}SqList;

void   initlist(SqList   &L)   //初试化操作
{
        L.elem   =   (int*)malloc(10*sizeof(ElemType));
        if(!L.elem)
exit(0);
        L.length   =   0   ;
        L.listsize   =   10   ;

}


Status   ListInsert(SqList   &L,int   i,ElemType   e)     //   插入
{
ElemType   *newbase,*p,*q;
if(i <1||i> L.length+1)
{
return   0;
}
       

        q=L.elem+i-1;
        for(p=L.elem+L.length-1;p> =q;--p)
                *(p+1)=*p;
          *q=e;
          ++L.length;

        return   1;
}

main()
{
        SqList   M;
        initlist(M);
        ListInsert(M,1,1);//将1插入到第一个位置
        printf( "*M.elem=%d ",*(M.elem+1));
}


我的问题是显示的结果是   *M.elem=-842150451
这是什么问题啊?




[解决办法]
void initlist(SqList &L) //初试化操作
Status ListInsert(SqList &L,int i,ElemType e) // 插入

如果你写的是C那上面这种写法都是错的
如果你想做接受地址传值,就改成*L
[解决办法]

SqList M;
initlist(M);//错误
ListInsert(M,1,1);//将1插入到第一个位置//错误
printf( "*M.elem=%d ",*(M.elem+1));//错误

[解决办法]
*(M.elem+1)越界了!!

热点排行