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

三叉搜索树插入节点时触发Read Access Violation异常求助

问题修复方案

核心问题

你遇到的Read Access Violation异常,根源是节点创建时未初始化mid指针。VS中0xcdcdcdcd代表未初始化的堆内存,当插入的key落在当前节点key的±500范围内时,代码会递归操作root->mid,但这个指针未被初始化为NULL,访问野指针就会触发内存异常。

修复代码

修改create_BiTreeNode函数,补充mid指针的初始化:

BiTree create_BiTreeNode(int key) {
    BiTNode* node = (BiTNode*)malloc(sizeof(BiTNode));
    node->key = key;
    node->left = NULL;
    node->mid = NULL;  // 新增这一行,初始化mid指针
    node->right = NULL;
    return node;
}

额外优化建议(可选)

  • Max函数可以简化逻辑,避免冗余判断:
    int Max(int a, int b, int c) {
        int temp = a > b ? a : b;
        return temp > c ? temp : c;
    }
    
  • 注意scanf_s是VS特定函数,如果需要跨平台兼容性,可以替换为标准的scanf。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:33:14