c语言 出现空指针赋值怎么回事???请高手帮忙看下。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 出现空指针赋值怎么回事???请高手帮忙看下。相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
readTxt1()

FILE *fp;
int i;
int zts[35];
fp=fopen("zhuangtai.txt","r");
for(i=0;i<35;i++)
fscanf(fp,"%d",&zts[i]);
fclose(fp);

readTxt2()

FILE *fp1;
int i;
int point1[35];
fp1=fopen("jiedian1.txt","r");
for(i=0;i<35;i++)
fscanf(fp1,"%d",&point1[i]);
fclose(fp1);

readTxt3()

FILE *fp2;
int i;
int point2[35];
fp2=fopen("jiedian2.txt","r");
for(i=0;i<35;i++)
fscanf(fp2,"%d",&point2[i]);
fclose(fp2);

readTxt4()

FILE *fp3;
int i;
float x1[35];
fp3=fopen("zhxdiankang.txt","r");
for(i=0;i<35;i++)
fscanf(fp3,"%f",&x1[i]);
fclose(fp3);

void main()

int I,J,K,lines,points,ztstime,nYIJ,K0,K1,K2,J1,J3;
int zts[35];
int point1[35];
int point2[35];
float x1[35];
float YDJ12[22],YDJ22[22];
int YFDJ12MHGS[22];
float YDJ122[22],YFDJ122[70],BGZYIJ2[70];
int BGZYIJHH[70],BGZYIJLH[70],YFDJ12LH[70];
float X;
float Yline2;
readTxt1();
readTxt2();
readTxt3();
readTxt4();
for (I=0;I<=21;I++)

YDJ12[I]=0;

nYIJ=0;
for (K=0;K<35;K++)

ztstime=zts[K];
if(ztstime==0) continue;
I=point1[K];
J=point2[K];
X=x1[K];
if(X==0.0) continue;
Yline2=-1.0/X;
if(ztstime==1||ztstime==2||ztstime==3)

YDJ12[I-1]=YDJ12[I-1]+Yline2;YDJ12[J-1]=YDJ12[J-1]+Yline2;
nYIJ=nYIJ+1,BGZYIJ2[nYIJ]=-Yline2;BGZYIJHH[nYIJ]=I;BGZYIJLH[nYIJ]=J;
nYIJ=nYIJ+1;BGZYIJ2[nYIJ]=-Yline2;BGZYIJHH[nYIJ]=J;BGZYIJLH[nYIJ]=I;

else
YDJ12[I-1]=YDJ12[I-1]+Yline2;
continue;


for(I=0;I<=21;I++)
printf(" YDJ12[I]=%f",YDJ12[I]);
J=0;K0=0;
for(I=0;I<=21;I++)

J1=0;
for(K=0;K<=nYIJ-1;K++)

if(BGZYIJHH[K]!=I)
continue;
J3=BGZYIJLH[K];
for(K1=0;K1<=J1-1;K1++)

K2=K0+K1;
if(J3==YFDJ12LH[K2]) break;

if(K1>=J1)

J=J+1;YFDJ122[J]=BGZYIJ2[K];YFDJ12LH[J]=J3;J1=J1+1;continue;

else

YFDJ122[K2]=YFDJ122[K2]+BGZYIJ2[K];
continue;


YFDJ12MHGS[I]=J1;K0=K0+J1;

for(I=0;I<70;I++)
printf(" %f",YFDJ122[I]);
for(I=0;I<70;I++)
printf(" %d",YFDJ12LH[I]);
for(I=0;I<22;I++)
printf(" %d",YFDJ12MHGS[I]);



我是想调用这四个函数readTxt1();readTxt2();readTxt3();readTxt4();实现分别从文本文件zhuangtai.txt;jiedian1.txt;jiedian2.txt;zhxdiankang.txt给zts[35];point1[35];point2[35];x1[35]赋值,

我C语言不是很精,在做毕设,希望高手可以帮帮我,先谢过各位大侠了。

是编译器报的空指针赋值吧?主要原因:作者没有搞清楚C中的全局变量和局部变量的问题。
1。zts[35];point1[35];point2[35];x1[35]这四个数组在main()中有,在四个子函数中有,各是各的,互不干涉,所以main()中的这四个数组始终没有被赋值过,空指针指的就是这个吧。
2。应该把这四个数组的首地址作为四个read()的参数传过去,就可以实现:“在子函数中赋值,在main函数中使用” 的设计目的了。看程序,感觉作者就是这个目的吧。
3。 魔尊8 说的有一定道理,这四个read确实没有起到应有的作用。加上数组首地址做参数就可以了。或者把这四个数组做成全局变量也行啊。
4。作者有时间的话还是应该好好看看C语言的书啊。
参考技术A 所谓的 空指针赋值
是不是
fp=fopen("zhuangtai.txt","r");

fopen返回的是指针,把文件的地址传给了fp
参考技术B readTxt1();
readTxt2();
readTxt3();
readTxt4();
没有仔细研究,不过首先我认为你这四个函数调用就有问题,根本就没有返回任何值,就跟没有调用一样。

eclipse+maven 在svn下载项目后出现很多的error 如下图.请高手帮忙看下.谢谢

参考技术A 主要原因是依赖的jar包取不到。

1.ch.qos开头的,应该是自己开发的jar包,要 mvn clean install 进行安装。

2. 其他像org.apache开头的,是第三方的jar包。 取不到的原因,有可能是你网络的问题,也有可能是maven的setting.xml中仓库的配置问题。

参考技术B clean project一下,然后使用maven插件的update project试试,每个errors都可以使用quick-fix看看能不能解决的本回答被提问者采纳 参考技术C 缺少maven插件 参考技术D 感觉像是配置文件出错了,因为location都是line1,路径是不是有问题? 第5个回答  2013-09-17 估计是包不对吧!或者是没引入你需要的包

以上是关于c语言 出现空指针赋值怎么回事???请高手帮忙看下。的主要内容,如果未能解决你的问题,请参考以下文章

请计算机高手帮忙解答。在win7中,系统启动之后不久就出现这个对话框是怎么回事(每次)?如何让他不再出现

请js高手帮忙看下,我想用select那个下拉按钮,但是点击的时候不想让它出现下拉框,怎么搞?

关于C语言指针的问题,希望高手帮忙解答一下

请C语言版数据结构高手帮帮忙!

IE缓存文件Content.IE5里的文件删不了 怎么回事 请高手来帮忙

word页面总上下窜动是怎么回事?请高手帮忙解决,急·谢谢!