我只是想知道爲什麼這種行爲出現?分割故障(核心轉儲)爲載體聲明
如果我只是聲明vector< pair<int,int> > graph[1000050];
超出了我的main()
我的計劃不會給任何錯誤,但發生如果我只是把它聲明我main()
分段故障裏面,但是爲什麼呢?
我只是想知道爲什麼這種行爲出現?分割故障(核心轉儲)爲載體聲明
如果我只是聲明vector< pair<int,int> > graph[1000050];
超出了我的main()
我的計劃不會給任何錯誤,但發生如果我只是把它聲明我main()
分段故障裏面,但是爲什麼呢?
這是太大的堆棧。改爲使用矢量矢量。
在主它具有塊範圍,因此它被聲明爲局部變量和一個試圖分配它在棧上。您要求分配10mil x(sizeof(int)* 2 +對開銷向量)字節,這對您的堆棧來說顯然太多了。
矢量分配其內容連續在內存中,所以你可能要考慮不同的數據結構,它沒有這樣做。
它不在主體之外的「堆」上。 – juanchopanza
這可能是太大了你的籌碼。但是你真的想要一個向量數組嗎? – juanchopanza