鱼C论坛

 找回密码
 立即注册
查看: 3270|回复: 3

为什么编译器老是提示我访问冲突??

[复制链接]
发表于 2018-4-29 10:18:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>
#define n 6
#define m 2*n-1

typedef struct
{
        int weight;
        int lchild,rchild,parent;
}HNode,*Huffmantree;

void inittree(Huffmantree *T)
{
        *T=(Huffmantree)(sizeof(HNode)*m); //用顺序存储结构来储存每一个结点
        if(!(*T))
        {
                printf("内存分配失败。\n");
        }
        else
        {
                printf("初始化成功");
        }
}
        

void selectmin(Huffmantree T,int k,int p1,int p2)
{
        int i;
        int small1=10000,small2=10000;
        for(i=0;i<k;i++)
        {
                if(T[i].parent=-1)
                        if(T[i].weight<small1)
                        {
                                small2=small1;
                                small1=T[i].weight;
                                p2=p2;
                                p1=i;
                        }
                        else
                        {
                                if(T[i].weight<small2)
                                {
                                        small2=T[i].weight;
                                        p2=i;
                                }
                        }
        }
}

void creathuffmantree(Huffmantree *T)
{
        int i,p1,p2;
        for(i=0;i<m;i++)   //初始化m个结点
        {
                T[i]->weight=0;
                T[i]->parent=-1;
                T[i]->lchild=-1;
                T[i]->rchild=-1;
        }
        for(i=0;i<n;i++)  //输入n个叶子结点的权重
        {
                printf("请输入第%d个权重:",i+1);
                scanf("%d",&T[i]->weight);
        }
        for(i=n;i<m;i++)
        {
                selectmin(T,i-1,p1,p2);
                T[p1]->parent=i;
                T[p2]->parent=i;
                T[i]->lchild=p1;
                T[i]->rchild=p2;
                T[i]->weight=T[p1]->weight+T[p2]->weight;
        }
}

int main()
{
        Huffmantree T;
        printf("请创建一棵哈弗曼树:");
        inittree(&T);
        creathuffmantree(&T);
        return 0;
}



@人造人
333.png
333333.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-29 10:28:53 | 显示全部楼层
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-29 10:31:12 | 显示全部楼层

“哈夫曼.exe”: 已加载“E:\哈夫曼\Debug\哈夫曼.exe”,已加载符号。
“哈夫曼.exe”: 已加载“C:\Windows\syswow64\ntdll.dll”,Cannot find or open the PDB file
“哈夫曼.exe”: 已加载“C:\Windows\syswow64\kernel32.dll”,Cannot find or open the PDB file
“哈夫曼.exe”: 已卸载“C:\Windows\syswow64\kernel32.dll”
“哈夫曼.exe”: 已加载“C:\Windows\syswow64\kernel32.dll”,Cannot find or open the PDB file
“哈夫曼.exe”: 已加载“C:\Windows\syswow64\KernelBase.dll”,Cannot find or open the PDB file
“哈夫曼.exe”: 已加载“C:\Windows\syswow64\msvcr100d.dll”,已加载符号。
哈夫曼.exe 中的 0x0020388d 处最可能的异常: 0xC0000005: 写入位置 0x000000b0 时发生访问冲突
哈夫曼.exe 中的 0x0020388d 处有未经处理的异常: 0xC0000005: 写入位置 0x000000b0 时发生访问冲突


为啥我的编译器都没有给我警告
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 10:33:07 | 显示全部楼层
愿你 发表于 2018-4-29 10:31
“哈夫曼.exe”: 已加载“E:\哈夫曼\Debug\哈夫曼.exe”,已加载符号。
“哈夫曼.exe”: 已加载“C:\Win ...

无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 21:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表