我正試圖修復當我運行一個C++程序時發生的Segmentation Fault錯誤,這是由於我調用的結構太大造成的。我正在尋找一種方法來使用我的預先存在的C++結構並將其從堆棧移到堆中。由於C++結構中的大型二維數組造成的分段錯誤
我的代碼如下所示:
n = 300;
struct arrayStruct {
double arr[n][n];
};
int main(int argc, char *argv[]){
arrayStruct temperature;
// do a bunch of stuff including passing and receiving the arrayStruct within a few functions
return 0
}
我一直在使用malloc和新的嘗試,但似乎只拿到我不知道如何解決這些錯誤。我已經嘗試在結構以及主文件中,但似乎無法得到它的工作。
在此先感謝
我不能讓它適用於結構。如果我正在看一個簡單的2D數組,它只在函數中定義,那我會很好。我遇到的問題是將其轉換爲結構中的二維數組。 – jeremy 2013-02-09 03:50:12
只需在堆上分配'arrayStruct'的一個實例:'std :: unique_ptr temperature(new arrayStruct());' –
2013-02-09 04:01:39