c++的顺序表问题

#include<iostream>using namespace std;const int LIST_INIT_SIZE=100;const int LISTINCREAMENT=10;typedef struct{ char *elem; int length; int listsize; int icrementasize;}SqList;class Operation{ SqList L;public: Operation(int maxize,int increasize); void ListInsert_Sq(int i,char e);};Operation::Operation(int maxsize,int increasize){ L.elem=new char[maxsize]; L.length=0; L.icrementasize=increasize; }void Operation::ListInsert_Sq(int i,char e){ if(i<1||i>L.length+1) cout<<"i值不合法"<<endl; if(L.length>=L.listsize) { char *a=new char[L.icrementasize+L.listsize]; for(i=0;i<L.length;i++) a[i]=L.elem[i]; delete[] L.elem; L.elem=a; L.listsize+=L.icrementasize; } int k; if(i=L.length+1) L.elem[i]=e; else for( k=L.length;k>=i;k--) L.elem[k]=L.elem[k-1]; L.elem[k]=e; L.length++;}int main(){ char a=5; Operation Opp(LIST_INIT_SIZE,LISTINCREAMENT); Opp.ListInsert_Sq(1,a); return 0;}c++顺序表 想创建一个顺序表将其初始化然后插入一个元素 但是总遇到0x76e6c42d 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0017f74c 处的 std::bad_alloc。不知道怎么解决 求大神拯救
2026年09月19日 14:52
有2个网友回答
网友(1):

std::bad_alloc是内存分配错误。if(i=L.length+1)。

网友(2):

你的listsize在哪里赋的值?