【发布时间】:2018-08-06 19:53:21
【问题描述】:
我在将数据写入文件时遇到分段错误。这是代码
int arr[N]; // where N = 1508065
f = fopen( "datafile.txt", "w" );
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
for( i=1;i<=N;i++)
{
arr[i]=rand()%100;
fprintf(f, "%d %d %d\n",i,1,arr[i] );
}
fclose(f);
我已经尝试过使用 double arr[N] 即使这样是分段错误。当 N 较小时,它可以正常工作。
【问题讨论】:
-
您正在读取数组的末尾。
-
你可能会炸毁你的堆栈 --> STACK OVERFLOW 使用一个由
1,508,065整数或6,032,260字节数据组成的整数数组。当心。动态分配该存储空间可能是明智之举。
标签: c file segmentation-fault