SORU
1 Aralık 2009, Salı


C/C Azami program yığın boyutu

100 X 100 dizisinde DFS yapmak istiyorum. (Dizi elemanları grafik düğüm oluşturduğunu söylüyorlar) bu Yüzden en kötü durum varsayarak, özyinelemeli işlev çağrıları derinliği her diyeyim 20 bayt kadar alarak 10000 kadar gidebilir. Bu yüzden mümkün demektir stackoverflow olasılığı nedir?

C/C yığın boyutu nedir ?

Hem de Körfez ülkeleri belirtiniz
1) Windows özellik listesi
2) Unıx

Genel sınırlar nedir?

CEVAP
1 Aralık 2009, Salı


Visual Studio varsayılan boyutu, 10.000 özyineleme derinliği karede en olabilir yığın her ile yani ~100 bayt sanırım DFS algoritması için yeterli olması gereken 1 MB yığın.

Visual Studio da dahil olmak üzere çoğu derleyici size yığın boyutu belirtmek için izin ver. Bazı (?) linux tatlar boyutu yürütülebilir bir parçası ama bir ortam OS değişken değil yığın. Sonra ulimit -s yığın boyutu ve örneğin ulimit -s 16384 ile yeni bir değere ayarlayın kontrol edebilirsiniz.

link varsayılan gcc boyutlarda bir yığın işte.

Özyineleme olmadan DFS:

std::stack<Node> dfs;
dfs.push(start);
do {
    Node top = dfs.top();
    if (top is what we are looking for) {
       break;
    }
    dfs.pop();
    for (outgoing nodes from top) {
        dfs.push(outgoing node);
    }
} while (!dfs.empty())

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • Jason Parker

    Jason Parker

    14 Aralık 2009