K
K
kill942015-11-04 22:30:19
C++ / C#
kill94, 2015-11-04 22:30:19

Is it possible to increase stack size in Visual c++?

void QuickSort(string masStr[], int first, int last)
{
  int f = first, l = last;
  string temp;
  char midStr[MAX_LENGTH_STR + 1];
  strcpy(midStr, masStr[(f + l) / 2].c_str()); // Находим разделительный элемент в середине массива

  while (strcmp(masStr[f].c_str(), midStr)<0)
    f++; // Находим элемент  от левого индекса.
  while (strcmp(masStr[l].c_str(), midStr)>0)
    l--; // Находим элемент  от правого индекса.
  if (f <= l)  // Если индексы не пересекаются, меняем
  {
    temp = masStr[f];
    masStr[f] = masStr[l];
    masStr[l] = temp;
    f++;
    l--;
  }
  //Если правый индекс не достиг левой границы массива, нужно повторить сортировку левой части.
#pragma omp parallel
  if (first < l) QuickSort(masStr, first, l);
  //Если левый индекс не достиг правой границы массива, нужно повторить сортировку правой части.
  if (f < last) QuickSort(masStr, f, last);
}

quick sort function. if you enable sorting of 20000000 million rows, the stack overflows with recursion. is it possible to change the stack size?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
A
Alexander Taratin, 2015-11-04
@Taraflex

Stack increase is a crutch. Change the algorithm and expand the recursion into a loop.

D
Dmitry Snytkin, 2015-11-05
@dima11221122

You can increase it like this , you can do the same with the directive in the code
#pragma comment(linker, "/STACK:16777216")

Y
Yaroslav Lyzlov, 2015-11-04
@dixoNich

It's better to rewrite the sort.
habrahabr.ru/post/205290

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question