Status InitList ( SqList &L )
{
/allocate memory/
L.elem = (ElemType *)malloc( LIST_INIT_SIZE * sizeof(SqList) );
if ( !L.elem ) return MEM_ALLOCATE_ERROR;
/*initialize structure parament*/
L.length = 0;
L.listszie = LIST_INIT_SIZE;
return OPRERTER_SUCCESS ;
}
Status DestroyList ( SqList &L )
{
if ( !L.elem ) return SQLIST_NOT_EXIST;
free((void *)L.elem);
return OPRERTER_SUCCESS ;
}
首先这个空间申请的就是错的
L.elem = (ElemType *)malloc( LIST_INIT_SIZE * sizeof(SqList) );
L.elem是Sqlist中的一个数组,不是SqList,SqList中还有一个长度大小值呢
其次,就看这两个函数不好判断原因,可能是中间函数处理中改变了L.elem,所以最好还是把整个代码贴出来