them0b 发表于 2021-4-19 10:23:26

数据结构顺序表输出问题

学习数据结构写了一段代码想实现数据表,在主函数中加了一个循环想输出一下表内的数据,但是运行的结果没有输出数据,代码不知道哪里有问题。
希望高人指点
运行后终端显示如下
PS E:\C项目\SeqList> cd "e:\C项目\SeqList\" ; if ($?) { gcc SeqList.c -o SeqList } ; if ($?) { .\SeqList }
(然后就没了)
代码如下:

#include<stdio.h>
#include<stdlib.h>
#define InitSize 100

typedef struct{
    int *data;
    int MaxSize, length;
} SeqList;

void InitList(SeqList L){
    L.data = (int *)malloc(InitSize * sizeof(int));
    L.length = 0;
    L.MaxSize = InitSize;
}

void IncreaseSize(SeqList L,int len)
{
    int *p = L.data;
    L.data = (int *)malloc((L.MaxSize + len) * sizeof(int));
    for (int i = 0; i < L.length;i++)
    {
      L.data = p;
    }
    L.MaxSize = L.MaxSize + len;
    free(p);
}

int main()
{
    SeqList L;
    InitList(L);
    for (int i = 0; i < 5;i++)
    {
      L.data = 2*i;
    }
    IncreaseSize(L, 5);
    for (int i = 0; i < 5;i++)
    {
      printf("%d", L.data);
    }
    printf("MaxSize is :%d", L.MaxSize);
    return 0;
}

yuxijian2020 发表于 2021-4-19 11:18:58

本帖最后由 yuxijian2020 于 2021-4-19 11:25 编辑

你传参传的不是指针,值传递的话,传入的参数不会有什么改变

wwhdx 发表于 2021-4-19 11:22:16

#include<stdio.h>
#include<stdlib.h>
#define InitSize 100

typedef struct {
    int* data;
    int MaxSize, length;
} SeqList;

void InitList(SeqList *L) {
    L->data = (int*)malloc(InitSize * sizeof(int));
    L->length = 0;
    L->MaxSize = InitSize;
}

void IncreaseSize(SeqList *L, int len)
{
    int* p = L->data;
    L->data = (int*)malloc((L->MaxSize + len) * sizeof(int));
    for (int i = 0; i < L->length; i++)
    {
      L->data = p;
    }
    L->MaxSize = L->MaxSize + len;
    free(p);
}

int main()
{
    SeqList L;
    InitList(&L);
    for (int i = 0; i < 5; i++)
    {
      L.data = 2 * i;
      L.length++;
    }
    IncreaseSize(&L, 5);
    for (int i = 0; i < 5; i++)
    {
      printf("%d", L.data);
    }
    puts("");
    printf("MaxSize is :%d", L.MaxSize);
    return 0;
}

wwhdx 发表于 2021-4-19 11:22:52

{:10_334:}

them0b 发表于 2021-4-19 14:04:34

wwhdx 发表于 2021-4-19 11:22
#include
#include
#define InitSize 100


大佬,我按照你的改之后,它会显示结构体内的语句有问题。
说:表达式必须具有结构或联合类型,但是它具有类型“SeqList”

wwhdx 发表于 2021-4-19 14:13:31

them0b 发表于 2021-4-19 14:04
大佬,我按照你的改之后,它会显示结构体内的语句有问题。
说:表达式必须具有结构或联合类型,但是它具 ...

标黄的是重点,注意还有一些其他的细节,比如指针访问结构体成员的方式也要改
页: [1]
查看完整版本: 数据结构顺序表输出问题