标题:队列中分配内存的问题。
取消只看楼主
持剑的战士
Rank: 1
等 级:新手上路
帖 子:30
专家分:3
注 册:2019-12-6
结帖率:62.5%
已结贴  问题点数:20 回复次数:0 
队列中分配内存的问题。

typedef int QElemType;
#define MAXQSIZE 100
typedef struct
{
    QElemType  *base;
    int  front;
    int  rear;
}SqQueue;
void  InitQueue(SqQueue  &Q)
{
    Q.base = (QElemType * )malloc(MAXQSIZE * sizeof(QElemType));
    if(!Q.base)  exit(-1);
    Q.front = Q.rear = 0;
}

typedef struct queue
{
    QElemType  base[MAXQSIZE];
    int front;
    int rear;
}SqQueue;
void InitQueue(SqQueue  &Q)
{
    Q = (SqQueuePtr)malloc(sizeof(SqQueue));
    if (!Q)
    {
        printf("存储分配失败!\n");
        exit(-1);
    }
    Q.front = Q.rear = 0;
}
正如我标红处:
第一个问题:在什么情况下要在sizeof(SqQueue)前乘上MAXQSIZE?
第二个问题:为什么①中是给Q.base分配内存,而②中是给Q分配内存,这两种有什么区别?
搜索更多相关主题的帖子: base sizeof 分配 内存 int 
2020-12-20 20:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504326-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.250303 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved