Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C数组,预设了巨大的值?_C_Arrays - Fatal编程技术网

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 ==

这是给我带来问题的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 == 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数组。

谢谢,我不知道它是这样工作的。我会研究你的建议。