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

  • Android Police

    Android Poli

    21 NİSAN 2010
  • metallmanutza13

    metallmanutz

    13 NİSAN 2007
  • parlophone

    parlophone

    28 ŞUBAT 2006