急!帮忙看一下这个程序那里出现了问题,编译没有错,执行时会弹出应用程序错误

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:05:54
应用程序发生异常unknown softwar exception(0xc00000fd),位置为0x004012d3
#include<stdio.h>
#include<string.h>
#define N 60
#define M 2*N-1
typedef struct
{
char data;
int weight;
int parent;
int lchild;
int rchild;
}htnode;
typedef struct
{
char cd[N];
int start;
}hcode;
void createht(htnode ht[],int n)
{
int i,k,lnode,rnode;
int min1,min2;
for(i=n;i<2*n-1;i++)
ht[i].parent=ht[i].lchild=ht[i].rchild=-1;
for(i=n;i<2*n-1;i++)
{
min1=min2=32767;
lnode=rnode=-1;
for(k=0;k<=i-1;k++)
if(ht[k].parent==-1)
{
if(ht[k].weight<min1)
{
min2=min1;rnode=lnode;
min1=ht[k].weight;lnode=k;
}
else if(ht[k].weight<min2)
{
min2=ht[k].weight;rnode=k;
}
}
ht[lnode].parent=i;ht[rnode].parent=i;
ht[i].weight=ht[lnode

太长了,没时间看。自己慢慢查找吧

系统文件受损。。。。 自己补救下就好·

编译正常,但是运行出现这种错误的话,主要出现有以下可能性:
1. 文件访问/写入异常
2. 内存奇数地址访问
3. 野指针访问
4. 受保护地址写入错误

但是综观你的程序,上述1,2的可能性可以排除,
应该是3,4中的一种。

・野指针访问
主要容易出现在,在生命期外进行先前返回的临时指针变量的访问。

・受保护地址写入错误
主要出现数组越界访问/写入,PV操作的强制割入

由于你的程序太长,手头没有环境进行编译,
建议你自己Debug一下,将视角主要集中在数组越界上。
在数组下标操作和数组遍历的地方出一些Log,进行定位。