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

  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • pissengehen

    pissengehen

    26 EYLÜL 2006
  • PUSHER

    PUSHER

    11 HAZİRAN 2014