Cygwin创建stackdump文件,编译需要很长时间(C+;+;) 我试图用CygWin:C++编译以下问题(下载.CPP):< /P> #include <fstream> #include <algorithm> #include <cstdio> #include <climits> using namespace std; int main() { int N, ft = 0, bw = 0; ifstream input; input.open("downloads.in"); input >> N; pair <int, int> S_T[N+1]; S_T[N+1].first = INT_MAX; S_T[N+1].second = INT_MAX; int FT[N]; fill(FT, FT + sizeof(FT), 0); for (int i = 0; i < N; ++i) { input >> S_T[i].first >> S_T[i].second; } input.close(); sort(S_T, S_T + N); for (int i = 0; i < N; ++i) { if (S_T[i+1].second != 0) { for (int j = i+1; j < N; ++j) { S_T[j].second -= S_T[i].second; } S_T[i+1].first += S_T[i].first; S_T[i+1].second *= S_T[i-1].second / S_T[i].second; } else if (S_T[i+1].first != INT_MAX && S_T[i+1].second != INT_MAX) { S_T[i+1].first += S_T[i].first; S_T[i+1].second *= S_T[i-1].second / S_T[i].second; } FT[i] = S_T[i].second; } for (int i = 0; i < N; ++i) ft += FT[i]; ofstream output; output.open("downloads.out"); output << ft << endl; output.close(); return 0;

Cygwin创建stackdump文件,编译需要很长时间(C+;+;) 我试图用CygWin:C++编译以下问题(下载.CPP):< /P> #include <fstream> #include <algorithm> #include <cstdio> #include <climits> using namespace std; int main() { int N, ft = 0, bw = 0; ifstream input; input.open("downloads.in"); input >> N; pair <int, int> S_T[N+1]; S_T[N+1].first = INT_MAX; S_T[N+1].second = INT_MAX; int FT[N]; fill(FT, FT + sizeof(FT), 0); for (int i = 0; i < N; ++i) { input >> S_T[i].first >> S_T[i].second; } input.close(); sort(S_T, S_T + N); for (int i = 0; i < N; ++i) { if (S_T[i+1].second != 0) { for (int j = i+1; j < N; ++j) { S_T[j].second -= S_T[i].second; } S_T[i+1].first += S_T[i].first; S_T[i+1].second *= S_T[i-1].second / S_T[i].second; } else if (S_T[i+1].first != INT_MAX && S_T[i+1].second != INT_MAX) { S_T[i+1].first += S_T[i].first; S_T[i+1].second *= S_T[i-1].second / S_T[i].second; } FT[i] = S_T[i].second; } for (int i = 0; i < N; ++i) ft += FT[i]; ofstream output; output.open("downloads.out"); output << ft << endl; output.close(); return 0;,c++,g++,cygwin,C++,G++,Cygwin,此外,该程序的编译时间明显长于通常的1秒,Cygwin似乎在同一文件中创建了一个与我的程序同名的.exe.stackdump文件 我已经检查了Cygwin打开的后台进程,但没有发现任何进程。有人知道为什么会发生这种情况吗?首先要做的是查看实际的堆栈转储。它将告诉您问题发生的位置。pair S_T[N+1]不正确。@RSahu有什么错误?@JohnAlexandropoulos,数组的大小必须在编译时知道N是一个变量。它的值在编译时是未知的。我猜g++允许可变长度数组作为扩展。但它不是标准C++。

此外,该程序的编译时间明显长于通常的1秒,Cygwin似乎在同一文件中创建了一个与我的程序同名的.exe.stackdump文件


我已经检查了Cygwin打开的后台进程,但没有发现任何进程。有人知道为什么会发生这种情况吗?

首先要做的是查看实际的堆栈转储。它将告诉您问题发生的位置。
pair S_T[N+1]不正确。@RSahu有什么错误?@JohnAlexandropoulos,数组的大小必须在编译时知道<代码>N
是一个变量。它的值在编译时是未知的。我猜g++允许可变长度数组作为扩展。但它不是标准C++。
0 [main] downloads 76188 cygwin_exception::open_stackdumpfile: Dumping stack trace to downloads.exe.stackdump
 [Finished in 6.5s]