大家帮我看看一个溢出问题,谢谢大虾们了!
#include<stdio.h>#include<malloc.h>
#include<process.h>
//所要执行的操作
//实例化一个线性表InitList(&L)
//销毁线性表DestoryList(&L)
//ClearList(&L)将线性表设置为空表
// ListEmpty(&L)判断是否是空表 若是空表则返回True否则是false
//ListLength()返回L中的数据元素的个数
//GetElement(L,i,&e) 返回链表L中第i个元素的值并用e 返回
//LocateElement(L,e,compare())线性表已存在 compare()是数据的判定函数
//PriorElem(L,cur_e,&pre_e)cur_e是L中的数据元素则用pre_e返回他的前驱
//NextElem(L,cur_e,&next_e)cur_e是L中的数据元素则用next_e返回他的后继
//ListInser(&L,i,e)在线性表L中第i个元素之前插入新的元素、
//ListDelte(&L,i,&e)在线性表L中删除第i个元素,并将该元素用e返回
//Listtrave(L) 遍历线性表L中的每个元素
/*--------------------------------定义部分-----------------------*/
/*-----*方法定义部分---------*/
/*弄懂内存 弄懂一切*/
struct SqlList
{
int data;
int *pro;
int inintMax;
};
//初始化
int InitSqlist( struct SqlList *L,int m,int n,int k)
{
L->pro=(int *)malloc(3*sizeof(int));
if(L->pro=NULL)
{
printf("失败\n");
}
else{
L->pro[0]=m;
L->pro[1]=n;
L->pro[2]=k;
printf("%d\n,%d\n,%d\n",L->pro[0],L->pro[1],L->pro[2]);
printf("ERROR");
}
}
//销毁链表
int DestoryList(struct SqlList *L)
{
free(L->pro);//free的是什么 也就是说释放的是什么?
L->inintMax=0;//在释放之后为什么要致inintMax=0;
return 1;
}
// 清除链表 他和破坏链表于什么关系
int ClearList(SqlList *L)
{
L->data=0;//此时L.length=0代表什么含义呢?
return 1;
}
//顺序表已经存在 若为空返回0;否则返回1;
int ListEmpty( struct SqlList L)
{
if(L.inintMax==0)//L.length 是自带方法或者属性吗?
return 0;
return 1;
}
//返回列表中元素的个数
int ListLength(struct SqlList L)
{
int count;//计数器
if(L.pro!=NULL)
count++;
return count;
//此操作和L.length是否是一样的!
}
//返回链表元素的元素
int ReturnElement( struct SqlList L,int i,int *p)
{ int m;
if(i<0||i>L.inintMax)//若是出现了i正好等于Length的时候该怎么办呢??
exit(1);
else{
if(m<i)
{
L.pro++;
m++;
}
}
}
//执行插入
int Insert(struct SqlList*L,int i,int *e)//若是插入的不是int 类型的时候是否有好的方法进行改进
{
if(i<0||i>L->inintMax)
exit(1);
else
{
}
}
int main()
{ struct SqlList *L;
struct SqlList la;
L=&la;
InitSqlist(L,2,4,6);
getchar();
}