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

  • audivila

    audivila

    5 HAZİRAN 2009
  • HowcastSportsFitness

    HowcastSport

    11 Mayıs 2011
  • UnboxTechnology

    UnboxTechnol

    20 Ocak 2011