Мой оригинальный код (следующий) выдает ошибку сегмента при назначении массива строк примерно с num_atoms = 150,000:
int num_atoms=dimension[0]*dimension[1]*dimension[2]*prim_lat.size();
double superlat[num_atoms][3];
string current_occ[num_atoms];
Думая, что это был первый случай, когда я столкнулся с проблемой переполнения стека, и думал, что выМожно назначить кучу с помощью динамического выделения, я попытался:
int num_atoms=dimension[0]*dimension[1]*dimension[2]*prim_lat.size();
double superlat[num_atoms][3];
string *current_occ = new string[num_atoms];
Этот код дал сбой сегмента около num_atoms = 350 000.Я не уверен, что обойти эту проблему.Это только тот случай, когда мне нужно увеличить предел стека / кучи?Если да, могу ли я сделать это как параметр gcc?