-5
考慮下面的代碼:爲什麼這個C++代碼在運行時給我分段錯誤錯誤?
#include <iostream>
using namespace std;
int main()
{
const int max=500008;
long long cordx[max],cordy[max];
char type[max];
int n;
cin>>n;
for(int m=0;m<n;m++)
cin>>type[m]>>cordx[m]>>cordy[m];
return 0;
}
此代碼是給我上運行時分段錯誤。
但是,當我改變了這樣的代碼:
for(m=0;m<n;m++)
cin>>cordx[m];
它不給我任何錯誤。
它給了我只有當我嘗試輸入類似這樣的錯誤:
cin>>type[m]>>cordx[m]>>cordy[m];
也許陣列對於堆棧太大 –
嘗試減小陣列的大小,問題是否仍然存在? – Sniper
寫入'cordx'的區域可能全部都適合可用存儲器,並且只有當程序正在寫入下一個變量時,程序纔會出現越界。 – user4581301