У меня есть эта проблема, номер ошибки 3221225477 на экране вывода моей программы. Массив с пятью размерами запускается без ошибок, но один и более является критическим. Код:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <time.h>
#include "windows.h"
#include "psapi.h"
int size;
int array[];
time_t tStart;
time_t tEnd;
double sum;
double avg;
void reading(char pName[]){
int i=0;
FILE *f;
if ((f=fopen(pName,"r"))==NULL){
printf("file failed to open\n");
}
else{
while(i < size){
if (fscanf(f, "%d", &array[i])!= EOF){
//printf("%d\n", array[i]);
i++;
}
else{
break;
}
}
}
fclose(f);
}
void insertionSort() {
int i,j;
int temp;
for (i = 1; i < size; i++) {
temp = array[i];
j=i-1;
while((j >= 0) && (temp < array[j])) {
array[j + 1]= array[j];
j--;
}
array[j + 1]= temp;
}
}
void toString(){
int i;
for(i=0; i < size; i++){
printf("%d ", array[i]);
}
}
void test(int pSize, char pName[]){
size = pSize;
array[size];
int i;
for(i=0; i < 200; i++){
reading(pName);
time(&tStart);
insertionSort();
time(&tEnd);
reading(pName);
time(&tStart);
insertionSort();
time(&tEnd);
sum = sum + ((double) (tEnd - tStart) / 1000000);
}
avg = sum / 200;
printf("avg= %f\n", avg);
}
void testing(){
test(500,"500.txt");
test(1000,"1000.txt");
test(40000,"40000.txt");
}
int main(){
testing();
}
У вас есть идеи, чтобы это исправить, пожалуйста?
пример текстового файла:
5
89
1516
15689
88
568
684
.
.
.
size is a name of file
Целью кода является сравнение времени, прошедшего между двумя алгоритмами сортировки. (да, в коде только один, дважды)