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

  • julioissk84life

    julioissk84l

    18 ŞUBAT 2008
  • TimMinchinLive

    TimMinchinLi

    23 ŞUBAT 2009
  • wowchick16

    wowchick16

    17 Mart 2007