SORU
4 Aralık 2009, Cuma


Bölümleme büyük bir dizi boyutları hatası

Aşağıdaki kod bana 2 GB bir makine üzerinde çalıştırmak bölümleme hatası verir, ama 4GB bir makine üzerinde çalışıyor.

int main()
{
   int c[1000000];
   cout << "done\n";
   return 0;
}

Dizinin boyutu sadece 4 MB. C kullanılabilecek bir dizinin boyutu sınırı var mı ?

CEVAP
4 Aralık 2009, Cuma


Muhtemelen bir yığın taşması buraya alıyoruz. Dizi programın yığın adresi alana sığmayacak kadar büyük.

Eğer yığında dizi atarsanız iyi, makine yeterli belleğe sahip varsayarak olmalıdır.

int* array = new int[1000000];

Ama unutmayın ki bu, 3 ** dizi gerektirir. Daha iyi bir çözüm std::vector<int> kullanın ve 1000000 elemanları boyutlandırmak olacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • Gali B

    Gali B

    1 EYLÜL 2006
  • Klemens Torggler

    Klemens Torg

    11 Mart 2008