[英]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.