en该呢 2023-02-09 17:50 采纳率: 100%
浏览 31
已结题

数据结构中通过malloc函数创建动态数组失败

####问题发生背景:数据结构顺序栈的初始化失败
####错误信息:S->base=(SElemType)malloc(MAXSIZEsizeof(SElemType));


```c
typedef struct 
{
    int example;
}SElemType;

typedef struct 
{
    SElemType *base;
    SElemType *top;
    int stacksize;
}SqStack;

int main()
{
Status InitStack(SqStack *S);

SqStack *S;
InitStack(S);
printf("%o",S->base);
    
}

Status InitStack(SqStack *S)
{
    S->base=(*SElemType)malloc(MAXSIZE*sizeof(SElemType));
    if(!S->base) exit(OVERFLOW);
    S->top=S->base;
    S->stacksize=MAXSIZE;
    return OK;    
}

详细报错:[Error] expected expression before 'SElemType'

尝试方法:通过调试定位报错语句,最后发现是S->base编译系统无法理解,但S->表示指针所指向的结构体成员变量,语法上是可行的,百思不得其解。


###希望各位掌握相关知识的友友不吝赐教
  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-02-10 14:36
    关注

    改动处见注释,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    #define MAXSIZE  50   //修改 
    #define OVERFLOW -1   //修改
    #define OK 1          //修改
    typedef int Status;   //修改
    typedef struct{
        int example;
    }SElemType;
    typedef struct{
        SElemType* base;
        SElemType* top;
        int stacksize;
    }SqStack;
    int main()
    {
        Status InitStack(SqStack * S);
        SqStack* S;
        S = (SqStack*)malloc(sizeof(SqStack)); //修改
        InitStack(S);
        printf("%o", S->base);
        return 0;
    }
    
    Status InitStack(SqStack* S)
    {
        S->base = (SElemType*)malloc(MAXSIZE * sizeof(SElemType));  //修改
        //S->base = (*SElemType)malloc(MAXSIZE * sizeof(SElemType));
        if (!S->base) 
            exit(OVERFLOW);
        S->top = S->base;
        S->stacksize = MAXSIZE;
        return OK;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月19日
  • 已采纳回答 2月11日
  • 创建了问题 2月9日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助