首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个程序为什么编译、建立可以通过,但是运行却出现有关问题,无法运行

2012-03-06 
这个程序为什么编译、建立可以通过,但是运行却出现问题,无法运行?#includestdlib.h #includestddef.h #

这个程序为什么编译、建立可以通过,但是运行却出现问题,无法运行?
#include   "stdlib.h "
#include   "stddef.h "
#include   "string.h "
#include   "ctype.h "
#include   "stdio.h "
#include   "math.h "
#include   "assert.h "

typedef   struct   ArcBox
{
int   tail,   head;
struct   ArcBox   *hlink   ,   *tlink;
}ArcBox;
typedef   struct   FeaNode
{
char   feaname[30];
int   type;
union   range
{
char   *c_range[70];
int   i_range[70];
double     d_range[70];
}range;
int   indegree;
int   rangenum;
struct   ArcBox   *parent   ,   *child;
}FeaNode;

typedef   struct
{
struct   FeaNode   *fealist;
int   feanum,   arcnum;
}BayesNetwork;

void   InitNB(BayesNetwork   *nb)
{
struct   FeaNode   fealist[5]=
{{ "land ",0,{ "0 ", "1 "},0,2,NULL,NULL},
{ "wrong_fragment ",1,{0},0,2,NULL,NULL},
{ "urgent ",1,{0},0,2,NULL,NULL},
{ "hot ",1,{0},0,2,NULL,NULL},
{ "num_failed_logins ",1,{0},0,2,NULL,NULL}};

fealist[1].range.i_range[0]=0;
fealist[1].range.i_range[1]=1;
fealist[2].range.i_range[0]=0;
fealist[2].range.i_range[1]=1;
fealist[3].range.i_range[0]=0;
fealist[3].range.i_range[1]=1;
fealist[4].range.i_range[0]=0;
fealist[4].range.i_range[1]=1;

nb-> fealist=fealist;
nb-> feanum=5;
nb-> arcnum=0;

}

void   TestInitNB(BayesNetwork   *nb)
{
struct   FeaNode   *p;
InitNB(nb);
p=nb-> fealist;
while(p)
{
printf( "%s\t%d\t%d\t%d\n ",p-> feaname,p-> type,p-> indegree,p-> rangenum);
p++;
}
printf( "feature   number   =   %d\n ",nb-> feanum);
printf( "arc   number   =   %d\n ",nb-> arcnum);
}


void   main()
{
BayesNetwork   *nb=NULL;
TestInitNB(nb);
}


这个程序在编译和建立的时候,都没有错误和警告,但是在运行所生成的.exe文件的时候,遇到问题而终止。在vc++6的调试器中似乎显示的是所有带有“nb-> ”的行有问题,即使是换成“(*nb)”,问题依旧。请教大家,为什么会出现这样的问题,多谢了!

[解决办法]
void InitNB(BayesNetwork *nb)
{
struct FeaNode fealist[5]=// 局部变量
{{ "land ",0,{ "0 ", "1 "},0,2,NULL,NULL},
{ "wrong_fragment ",1,{0},0,2,NULL,NULL},
{ "urgent ",1,{0},0,2,NULL,NULL},
{ "hot ",1,{0},0,2,NULL,NULL},
{ "num_failed_logins ",1,{0},0,2,NULL,NULL}};

fealist[1].range.i_range[0]=0;
fealist[1].range.i_range[1]=1;
fealist[2].range.i_range[0]=0;
fealist[2].range.i_range[1]=1;
fealist[3].range.i_range[0]=0;
fealist[3].range.i_range[1]=1;
fealist[4].range.i_range[0]=0;
fealist[4].range.i_range[1]=1;

nb-> fealist=fealist;//???
}

[解决办法]
BayesNetwork *nb=NULL;
TestInitNB(nb);//内存也没开啊~
[解决办法]
nb = NULL之后没见到你给它分配空间,也没有给它赋值。。。

热点排行