You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求实现C++中Queue结构体的cleanQueue清理函数

实现方案

函数实现代码

#include <stdlib.h> // 需引入stdlib.h以使用free()函数

void cleanQueue(Queue* q) {
    // 避免空指针解引用
    if (q == NULL) {
        return;
    }

    // 释放数组内存并置空指针
    if (q->arr != NULL) {
        free(q->arr);
        q->arr = NULL;
    }
}

代码说明

  • 空指针检查:先判断传入的q是否为NULL,直接返回,防止访问空指针引发程序崩溃。
  • 释放数组内存:检查q->arr是否有效,调用free()释放其占用的堆内存;之后将q->arr置为NULL,避免后续误操作野指针(访问已释放的内存)。

额外注意事项

  • 此实现基于当前给出的Queue结构体(仅包含int* arr),如果后续结构体扩展了其他成员(如队列长度、头尾索引等),需要在cleanQueue中同步处理这些成员的重置。
  • 如果Queue对象本身是通过malloc在堆上分配的,调用cleanQueue后还需手动释放队列对象:free(q);。

内容的提问来源于stack exchange,提问作者SkyBear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:40:39