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

  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011
  • Max Lee

    Max Lee

    18 AĞUSTOS 2006