q958688524 2018-10-16 04:11 采纳率: 50%
浏览 571
已采纳

char数组问题,导致程序卡死

为什么我的EnQueue会卡死,我总感觉是char数组出了问题

     #include<iostream>
    #include<malloc.h>
    #include<stdio.h>
    #include<string.h>
    using namespace std;

    typedef struct node{**//队列**

    char name[20];

    struct node *next;

    }QType;

     typedef struct lnode{//队头,队尾指针

    QType *front;

    QType *rear;

    }LQueue;

    void InitQueue(LQueue *&lq){//初始化队列

    lq=(LQueue *)malloc(sizeof(LQueue));

    lq->front=lq->rear=NULL;

    }

    void EnQueue(LQueue *&lq,char name[]){//插入队尾元素

    QType *p;

    p=(QType *) malloc (sizeof(QType));

    strcpy(p->name,name);p->next=NULL;

    if(lq->front=NULL)

        lq->front=lq->rear=p;

    else{

        lq->rear->next=p;

        lq->rear=p;

    }

    } 

    int ShowQueue(LQueue *lp){//输出队列元素

    QType *p;

    if(lp->front==NULL)return 0;

    else{

        p=lp->front;

        cout<<"当前正在排队的有:";

        while(p!=NULL){

            cout<<" "<<p->name;

            p=p->next;

        }

    }

    }

    int main(){

    LQueue *p;

    InitQueue(p);  //初始化

    char name[]="gggg";

    EnQueue(p,name);**_//插入队尾元素  但是失败_**

    ShowQueue(p);//输出元素

    return 0;

    }
  • 写回答

1条回答 默认 最新

  • cold_windx 2018-10-16 04:21
    关注

    EnQueue函数中,第一个if语句判断条件写错了,是lq->front == NULL,你写成赋值=了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?