问题遇到的现象和发生背景
输入稍微多一点数据就报错
问题相关代码,请勿粘贴截图
#include<iostream>
#include<stdio.h>
#define size 100
#define ERROR -1
#define TRUE 1
#define FALSE 0
using namespace std;
typedef struct {
int maxsize;
int *elem;
int length;
}SqList;
void initList(SqList &L) {
L.maxsize = size;
L.elem = new int(L.maxsize);
if (!L.elem)
exit(ERROR);
L.length = 0;
}
void creatList(SqList& L,int n) {
for (int j = 0; j < n; j++) {
cin >> L.elem[j];
L.length++;
}
}
bool getElem(SqList L, int& e,int i) { //i从1开始
if (i > L.length || i < 1) {
return ERROR;
}
e = L.elem[i - 1];
return TRUE;
}
bool locateElem(SqList L, int& i, int e) {
for (int j = 0; j < L.length; j++) {
if (L.elem[j] == e) {
i = j + 1;
return TRUE;
}
}
return FALSE;
}
bool ListLength(SqList L,int &len) {
if (L.length == 0) {
return ERROR;
}
len = L.length;
return TRUE;
}
void printList(SqList L) {
int j = 0;
for (j = 0; j < L.length; j++) {
cout << L.elem[j] << endl;
}
}
void destoryList(SqList &L) {
if (L.elem != NULL) {
delete L.elem;
}
L.length = 0;
L.maxsize = 0;
}
bool isEmpty(SqList L) {
if (L.length == 0) {
return TRUE;
}
else {
return FALSE;
}
}
int main() {
SqList L;
initList(L);
creatList(L,8);
printList(L);
return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
如果输入三个数据,则不会报错。