鱼C论坛

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

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

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

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

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

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

  5. typedef struct
  6. {
  7.         int weight;
  8.         int lchild,rchild,parent;
  9. }HNode,*Huffmantree;

  10. void inittree(Huffmantree *T)
  11. {
  12.         *T=(Huffmantree)(sizeof(HNode)*m); //用顺序存储结构来储存每一个结点
  13.         if(!(*T))
  14.         {
  15.                 printf("内存分配失败。\n");
  16.         }
  17.         else
  18.         {
  19.                 printf("初始化成功");
  20.         }
  21. }
  22.        

  23. void selectmin(Huffmantree T,int k,int p1,int p2)
  24. {
  25.         int i;
  26.         int small1=10000,small2=10000;
  27.         for(i=0;i<k;i++)
  28.         {
  29.                 if(T[i].parent=-1)
  30.                         if(T[i].weight<small1)
  31.                         {
  32.                                 small2=small1;
  33.                                 small1=T[i].weight;
  34.                                 p2=p2;
  35.                                 p1=i;
  36.                         }
  37.                         else
  38.                         {
  39.                                 if(T[i].weight<small2)
  40.                                 {
  41.                                         small2=T[i].weight;
  42.                                         p2=i;
  43.                                 }
  44.                         }
  45.         }
  46. }

  47. void creathuffmantree(Huffmantree *T)
  48. {
  49.         int i,p1,p2;
  50.         for(i=0;i<m;i++)   //初始化m个结点
  51.         {
  52.                 T[i]->weight=0;
  53.                 T[i]->parent=-1;
  54.                 T[i]->lchild=-1;
  55.                 T[i]->rchild=-1;
  56.         }
  57.         for(i=0;i<n;i++)  //输入n个叶子结点的权重
  58.         {
  59.                 printf("请输入第%d个权重:",i+1);
  60.                 scanf("%d",&T[i]->weight);
  61.         }
  62.         for(i=n;i<m;i++)
  63.         {
  64.                 selectmin(T,i-1,p1,p2);
  65.                 T[p1]->parent=i;
  66.                 T[p2]->parent=i;
  67.                 T[i]->lchild=p1;
  68.                 T[i]->rchild=p2;
  69.                 T[i]->weight=T[p1]->weight+T[p2]->weight;
  70.         }
  71. }

  72. int main()
  73. {
  74.         Huffmantree T;
  75.         printf("请创建一棵哈弗曼树:");
  76.         inittree(&T);
  77.         creathuffmantree(&T);
  78.         return 0;
  79. }

复制代码




@人造人
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-3-29 00:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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