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

  • AyfionGaming

    AyfionGaming

    20 ŞUBAT 2013
  • MyCyberAcademy

    MyCyberAcade

    2 EKİM 2011
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010