user-0 提问: 新人求助！！！程序急用！！！无法运行！！！谢谢您了！代码贴上

回复:
user: user-1

user: user-2
content: #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #define re 0.000001 #define PI 3.1415926 void main() {     FILE *fp;     int l,w;     double s,t,N_decay;     double q=0.01,D=0.02;     double p;     int a,b,c;     int i,j,k;     int index;     int count=0,response=100;     double rand_p;     double theta,phi;     int N_init=100,N_pore=0,N_walkers=0;     static int array[999][3];     static int cube[100][100][100];     static double X_old[100],Y_old[100],Z_old[100],X_new[100],Y_new[100],Z_new[100];     s=0.5*re;     p=2*q*s/3/D;     fp=fopen("D:\\test.txt","w");     for(i=0;i<N_init-1;i++) {         for(j=0;j<N_init-1;j++) {             for(k=0;k<N_init-1;k++) {                 cube[i][j][k]=1;                 if(pow((i-50),2)+pow((j-50),2)+pow((k-50),2)<=100) {                     cube[i][j][k]=0;                     array[N_pore][0]=i;                     array[N_pore][1]=j;                     array[N_pore][2]=k;                     N_pore++;                 }             }         }     }     N_walkers=N_pore;     if(N_init<N_pore) {         for(i=0;i<N_init-1;i++) {             index=(int) floor(rand()*N_pore);             X_old[i]=(array[index][0]+rand())*re;             Y_old[i]=(array[index][1]+rand())*re;             Z_old[i]=(array[index][2]+rand())*re;         }         N_walkers=N_init;     } else {         N_init=N_pore;         for(w=0;w<N_pore-1;w++) {             X_old[w]=(array[w][0]+rand())*re;             Y_old[w]=(array[w][1]+rand())*re;             Z_old[w]=(array[w][2]+rand())*re;         }         N_walkers=N_pore;     }     do {         for(i=0;i<N_walkers;i++) {             theta=rand()*2*PI;             phi=rand()*PI;             X_new[i]=X_old[i]+s*sin(phi)*cos(theta);             Y_new[i]=Y_old[i]+s*sin(phi)*sin(theta);             Z_new[i]=Z_old[i]+s*cos(phi);             a=(int)floor(X_new[i]/re);             b=(int)floor(Y_new[i]/re);             c=(int)floor(Z_new[i]/re);             if(cube[a][b][c]==0) {                 X_old[i]=X_new[i];                 Y_old[i]=Y_new[i];                 Z_old[i]=Z_new[i];             } else {                 rand_p=rand();                 if(rand_p<p) {                     for(l=i;l<N_walkers;l++) {                         X_old[l]=X_old[l+1];                         Y_old[l]=Y_old[l+1];                         Z_old[l]=Z_old[l+1];                     }                     N_walkers--;                 }             }         }         count++;         t=s*s/6/D*count;         if(count%response==0) {             N_decay=N_walkers/N_init;             fprintf (fp,"弛豫时间是%lf 衰减率是%lf \n",t,N_decay);         }     } while(N_walkers/N_init>0.01);     fclose(fp); }

user: user-0
content: 引用 5 楼 zhao4zhong1 的回复:在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。 请问只是加一个static就可以了吗？在我这个程序里，还需要用malloc吗？谢谢了

user: user-2
content: 在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。

user: user-3
content: 引用 2 楼 talentwyb 的回复:meiyo没有 ，直接就说无法运行程序   无法运行程序，是程序被占用了？或者路径不对，还是什么？有其他提示吗

user: user-4
content: 编译调施自己来——没有问题的问题是无法回答的问题，就是没有问题，也不是好问题！ 针对过程中的错误，在来求助如何？

user: user-5
content: 引用 9 楼 sadadi 的回复: if(N_init<N_pore) {         for(i=0;i<N_init-1;i++) {             index=(int) floor(rand()*N_pore);             X_old[i]=(array[index][0]+rand())*re;             Y_old[i]=(array[index][1]+rand())*re;             Z_old[i]=(array[index][2]+rand())*re;         }   index 随机数的值 应该取余(%) 在合理范围内 index=(int)floor((double)rand()%N_pore);

user: user-5
content: if(N_init<N_pore) {         for(i=0;i<N_init-1;i++) {             index=(int) floor(rand()*N_pore);             X_old[i]=(array[index][0]+rand())*re;             Y_old[i]=(array[index][1]+rand())*re;             Z_old[i]=(array[index][2]+rand())*re;         }   index 随机数的值 应该取余(%) 在合理范围内

user: user-0
content: meiyo没有 ，直接就说无法运行程序

user: user-6
content: D盘中有test.txt文件么