Это происходит сбой, потому что вы используете неинициализированные переменные:
int sizes, sizek;
struct stat files, filek;
ofstream ofs;
if(stat("key.pc.db", &filek) ==0 )
sizek=filek.st_size;
if(stat("seek.pc.db", &files) ==0 )
sizes=files.st_size;
sizek=sizek/sizeof(int);
sizes=sizes/sizeof(int);
, если stat () не работает, вы используете неинициализированный sizek.В зависимости от неинициализированной памяти ваш следующий оператор будет аварийно завершать работу:
int *s=new int[sizes];
, поскольку sizes
может быть отрицательным или очень большим числом, а новое не будет выполнено.
Проверьте ошибку, возвращаемуюstat (), хотя возможно, что файл key.pc.db
не найден, что приводит к сбою функции.