Wsa98 2017-09-29 09:08 采纳率: 0%
浏览 1226

初学数据结构,vs显示错误使用了为初始化的局部变量p和m,求教如何改

#include
#include

#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef int ElemType;
typedef int Status;

typedef struct {

ElemType *elem;

int length;
int listsize;

}SqList;

Status InitList_Sq(SqList &L) {

L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));

if (!L.elem)exit(OVERFLOW);
L.length = 0;
L.listsize = LIST_INIT_SIZE;
return OK;

}//InitList_sq

Status ListInsert_Sq(SqList &L, int i, ElemType e) {

if (i < 1 || i >L.length + 1)return ERROR;

if (L.length >= L.listsize) {
    ElemType *newbase;
    newbase = (ElemType *)realloc(L.elem,
        (L.listsize + LISTINCREMENT) * sizeof(ElemType));
    if (!newbase)exit(OVERFLOW);
    L.elem = newbase;
    L.listsize += LISTINCREMENT;

}

int *q, *p;

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

*q = e;
++L.length;
return OK;

}//ListInsert_sq

Status ListDelete_Sq(SqList &L, int i, ElemType e) {

if ((i < 1) || (i >L.length))return ERROR;

ElemType *q, *p;

q = &(L.elem[i - 1]);
e = *p;
q = L.elem + L.length - 1;

for (++p; p <= q; ++p)* (p + 1) = *p;

--L.length;
return OK;

}//ListDelete_Sq

Status CreatList(SqList &L) {
int a[4] = { 3,6,9,2 };
for (int j = 0; j < 4; j++)
{
ListInsert_Sq(L, j + 1, a[j]);

}
return OK;

}

void Print(SqList &L)
{ //打印顺序表的数据元素
printf("输出顺序表:\n");
for (int i = 0; i<L.length; i++)
printf("%d\n", L.elem[i]);
}

void main() {

SqList wsa;


InitList_Sq(wsa);
printf("初始化顺序表的长度%d: \n", wsa.length);
printf("创建固定数据元素的顺序表:\n", wsa.length);
CreatList(wsa);
Print(wsa);

ListInsert_Sq(wsa, 2, 56);
printf("在位序为2处插入56:\n", wsa.length);
Print(wsa);


int m;
ListDelete_Sq(wsa, 3, m);
printf("删除位序3的数据元素:\n", wsa.length);
Print(wsa);


system("pause");
CreatList(wsa);

}

  • 写回答

5条回答 默认 最新

  • shifenglv 2017-09-29 10:28
    关注

    变量在被使用之前,先要初始化,光声明是不行的。int m,ListDelete_Sq(wsa, 3, m),这个变量m被声明了但没有被赋值,你把它传给一个函数,那这个m的值到底是多少呢?不能叫函数自己猜去啊。还有那个指针p,声明了但没赋值,然后直接引用e=*p。P的指向不明,又如何去引用?

    评论

报告相同问题?

悬赏问题

  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题