This array is large for the memory of the program stack - this is your mistake.
int main()
{
double arr[5428][5428];
}
Use dynamic array allocation:
int main()
{
int i;
double ** arr;
arr = (double**)malloc(sizeof(double*)*5428);
for (i = 0; i < 5428; i++)
arr[i] = (double*)malloc(sizeof(double)*5428);
for (i = 0; i < 5428; i++)
free(arr[i]);
free(arr);
}
Or select a simple size array MxNand useptr[y*width+x]
int main()
{
double * arr;
arr = (double*)malloc(sizeof(double)*5428*5428);
free(arr);
}
Or use the combined method:
int main()
{
int i;
double * arr[5428];
for(i = 0; i < 5428; i++)
arr[i] = (double)malloc(sizeof(double)*5428);
for(i = 0; i < 5428; i++)
free(arr[i]);
}
source
share