簡體   English   中英

char指針segfaulting數組

[英]array of char pointer segfaulting

如果因子很小,下面的代碼可以正常工作,但是當因子變大時,我會遇到細分錯誤。我遇到的第一個實例的大小約為800.000。 這應該很容易放入內存中,或者我想念什么? 感謝任何幫助。

char  *fgs_arr [facs().size()],  
      *true_arr[facs().size()],  
      *maps_arr[facs().size()];   

您用完了堆棧(本地聲明的內存所在的地方)。 您將需要動態聲明它(這將進入更大的堆)或增加堆棧大小。

由於VLA是在堆棧上,且堆棧(在大多數情況下)1MB,它應該容易裝入內存。 請改用malloc(並且不要忘記釋放)。

如您所知,您的堆棧空間不足。 切換到new非常困難; 它會促進內存泄漏和其他錯誤。 試試std::vector<char*>

std::vector<char*> fgs_arr(facs().size());
std::vector<char*> true_arr(facs().size());
std::vector<char*> maps_arr(facs().size());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM