jaclsohu 2023-04-20 12:11 采纳率: 37.5%
浏览 14
已结题

关于#c++#的问题,请各位专家解答!


#include <stdio.h>
#define MaxSize 10

typedef struct{
    int *data;
    int length;
}SqList;

void InitList(SqList &L)
{
    L.length = 0;
}

bool ListDelete(SqList &L,int i,int &e) //i为位序; e为用来存放被删除的元素 
{
    if(i<1 || i>L.length)
        return false;
        
    e = L.data[i-1];
    for(int j =i;j<=L.length;j++)
    {
        L.data[j-1] = L.data[j];
        
    }
    L.length--;
    return true;
 } 

int main()
{
    SqList L;
    InitList(L);
    L.data[0] = 1;
    L.data[1] = 2;
    L.data[2] = 3;
    L.data[3] = 4;
    L.length = 4; 
    int del ;  // 用变量e,把删除值带回来
    bool ret = ListDelete(L,2,del);

    if(ret)
    {
        printf("%d\n",del);
    } 
     else
     {
         printf("位序i不合法,删除失败\n");
     }
    
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-04-20 13:08
    关注

    data只是一个指针,没有分配空间啊

    
    void InitList(SqList &L)
    {
        L.data = (int *)malloc(sizeof(int)*MaxSize);
        L.length = 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月20日