!在其他电脑都可以运行,但自己电脑出现内存不能为read
求助!在其他电脑都可以运行,但自己电脑出现内存不能为read
cpp文件:
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
#define MAXSIZE 10
#define OK 1
#define OVERFLOW -2
#define ERROR 0
typedef struct List
{
ElemType *elem;
int length;
}SqList;
void InitList(SqList &L)
{
L.elem=new ElemType(MAXSIZE);
if (!L.elem) exit(OVERFLOW);
L.length=0;
}
void ClearList(SqList &L)
{
L.length=0;
}
int Listlength(SqList L)
{
return (L.length);
}
bool ListInsert(SqList &L,int i,ElemType e)
{
if((i<1)||(i>L.length+1)) return ERROR;
if (L.length==MAXSIZE) return ERROR;
for (int j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}
ElemType GetElem(SqList L,int i)
{
if ((i<1)||(i>L.length)) return ERROR;
return L.elem[i-1];
}
int main()
{
SqList myList;
int i=1,x,sum=0,n,k;
InitList (myList);
scanf("%d",&x);
while(x!=-1)
{
if (ListInsert(myList,i,x)==false)
printf("错误!\n");
i++;
scanf("%d",&x);
}
n=Listlength(myList);
for (i=1;i<=n;i++)
{
x=GetElem(myList,i);
sum=sum+x;
}
printf("%d\n",sum);
ClearList(myList);
}
.h头文件:
#define OK 1
#define OVERFLOW -2
#define ERROR 0
typedef struct List
{
ElemType *elem;
int length;
}SqList;
void InitList(SqList &L)
{
L.elem=new ElemType(MAXSIZE);
if (!L.elem) exit(OVERFLOW);
L.length=0;
}
void ClearList(SqList &L)
{
L.length=0;
}
int Listlength(SqList L)
{
return (L.length);
}
bool ListInsert(SqList &L,int i,ElemType e)
{
if((i<1)||(i>L.length+1)) return ERROR;
if (L.length==MAXSIZE) return ERROR;
for (int j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}
ElemType GetElem(SqList L,int i)
{
if ((i<1)||(i>L.length)) return ERROR;
return L.elem[i-1];
}


超过7个数据就会出现内存不能为read,但只有自己电脑会这样,求助大神,多谢
------解决思路----------------------
点取消调试程序
------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
cpp文件:
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
#define MAXSIZE 10
#define OK 1
#define OVERFLOW -2
#define ERROR 0
typedef struct List
{
ElemType *elem;
int length;
}SqList;
void InitList(SqList &L)
{
L.elem=new ElemType(MAXSIZE);
if (!L.elem) exit(OVERFLOW);
L.length=0;
}
void ClearList(SqList &L)
{
L.length=0;
}
int Listlength(SqList L)
{
return (L.length);
}
bool ListInsert(SqList &L,int i,ElemType e)
{
if((i<1)||(i>L.length+1)) return ERROR;
if (L.length==MAXSIZE) return ERROR;
for (int j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}
ElemType GetElem(SqList L,int i)
{
if ((i<1)||(i>L.length)) return ERROR;
return L.elem[i-1];
}
int main()
{
SqList myList;
int i=1,x,sum=0,n,k;
InitList (myList);
scanf("%d",&x);
while(x!=-1)
{
if (ListInsert(myList,i,x)==false)
printf("错误!\n");
i++;
scanf("%d",&x);
}
n=Listlength(myList);
for (i=1;i<=n;i++)
{
x=GetElem(myList,i);
sum=sum+x;
}
printf("%d\n",sum);
ClearList(myList);
}
.h头文件:
#define OK 1
#define OVERFLOW -2
#define ERROR 0
typedef struct List
{
ElemType *elem;
int length;
}SqList;
void InitList(SqList &L)
{
L.elem=new ElemType(MAXSIZE);
if (!L.elem) exit(OVERFLOW);
L.length=0;
}
void ClearList(SqList &L)
{
L.length=0;
}
int Listlength(SqList L)
{
return (L.length);
}
bool ListInsert(SqList &L,int i,ElemType e)
{
if((i<1)||(i>L.length+1)) return ERROR;
if (L.length==MAXSIZE) return ERROR;
for (int j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}
ElemType GetElem(SqList L,int i)
{
if ((i<1)||(i>L.length)) return ERROR;
return L.elem[i-1];
}
超过7个数据就会出现内存不能为read,但只有自己电脑会这样,求助大神,多谢
------解决思路----------------------
点取消调试程序
------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。