C数组,预设了巨大的值?
这是给我带来问题的C代码:C数组,预设了巨大的值?,c,arrays,C,Arrays,这是给我带来问题的C代码: int main(){ int Steps = 100; double Time = 10; double h = Time/Steps; double r[Steps+1]; double phi[Steps+1]; double u[Steps+1]; double v[Steps+1]; r[0]=0; phi[0]=0; u[0]=0; v[0]=0; FILE *fp; fp = fopen("results.dat", "w"); if(fp ==
int main(){
int Steps = 100;
double Time = 10;
double h = Time/Steps;
double r[Steps+1];
double phi[Steps+1];
double u[Steps+1];
double v[Steps+1];
r[0]=0;
phi[0]=0;
u[0]=0;
v[0]=0;
FILE *fp;
fp = fopen("results.dat", "w");
if(fp == NULL){
printf("Could not open results.dat \n");
exit(0);
}
int i;
for(i=0; i<Steps; i++){
fprintf(fp, "%f, %f \n",r[i], phi[i]);
}
fclose(fp);
}
intmain(){
int步数=100;
双倍时间=10;
双h=时间/步数;
双r[Steps+1];
双φ[步数+1];
双u[步数+1];
双v[步数+1];
r[0]=0;
φ[0]=0;
u[0]=0;
v[0]=0;
文件*fp;
fp=fopen(“results.dat”,“w”);
如果(fp==NULL){
printf(“无法打开results.dat\n”);
出口(0);
}
int i;
对于(i=0;i您请求堆栈上的大内存块,但不对它们的值进行检查或赋值,从而获得内存中发生的任何内容。我希望某些字节最终会设置更高的值位,从而在读写时为您提供“随机”数据。请看memset(3)
和malloc(3)
正如其他人所提到的,您的数组也在堆栈上。这些堆栈变量未初始化,将反映分配它们的堆栈内容。将它们移出main并使其成为全局变量,或者初始化它们,例如int r[10]={0};或calloc/malloc,memset数组。谢谢,我不知道它是这样工作的。我会研究你的建议。