白沐沐vccc 2022-10-05 01:39 采纳率: 96.2%
浏览 16
已结题

c语言把一级指针的值拷贝给二级指针报错

再给二级指针赋值时,把一级指针的值拷贝给二级指针不报错,但是有问题,请问这儿是什么原因呢?指针数据类型是char型,谢谢

//进栈
int Push(SqList s,ElemType *e) {
    
    if(s->top-s->base>=s->stackSize){
        printf("tnt\n");
        s->base=(ElemType **)realloc(s->base,(STACKINCREAMENT+STACK_INIT_SIZE)*sizeof(ElemType));
        if(!s->base) exit(ERROR);
        s->top=s->base+s->stackSize;
        s->stackSize+=STACKINCREAMENT;
    } 
    char ch[N];
    int i; 
    *(s->top)=(ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType));
    for(i=0;e[i]!='\0';i++){
        *(s->top)[i]=e[i];
//        printf("%c ",*(s->top)[i]);
    }
    *(s->top)[i]='\0';
    printf("e:%s\n",e);
    printf("S:%s\n",*(s->top)); 
    (s->top)++;
    return OK;
}

img


初始化栈绝对没问题的,也分配空间了

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-05 01:46
    关注

    s->top是什么类型啊???
    怎么会是 (s->top)=(ElemType * )malloc(STACK_INIT_SIZEsizeof(ElemType));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月12日
  • 已采纳回答 10月5日
  • 创建了问题 10月5日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部