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

  • Amena

    Amena

    15 Kasım 2006
  • ELawshea

    ELawshea

    26 Mayıs 2008
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011