SORU
19 EKİM 2008, Pazar


C max dizi uzunluk sınırı var mı ?

C bir dizi için maksimum uzunluk var mı ?

C sınırı yoksa benim makine mi bağlı? Tweakable? Dizinin yapılır türüne mi bağlıdır?

Bu sınırı bir şekilde kırabilir miyim veya bilgi depolamak için daha iyi yollar aramak zorunda mıyım? Ve en kolay yolu ne olmalıdır?

Ne yapmam gerektiğini bir dizi üzerinde uzun uzun int depolama, Linux ortamında çalışıyorum. Sorum şu: ben eğer N ^ N uzun uzun dizisi saklamak için ihtiyacım olursa ne yapmalıyım . 10 haneli?

Okul için bazı şifreleme algoritması örneğin p-Pollard gibi () yazıyorum, çünkü buna ihtiyacım var, ve tamsayılar bu duvar ve diziler temsil uzunlukta vurdu.

CEVAP
19 EKİM 2008, Pazar


Kimse boyutu sınırı bahsettiyığın çerçevesi.

Bellek ayrılmış iki yer vardır:

  • Yığın (dinamik olarak ayrılan bellek).
    Boyut sınırı burada mevcut donanımların bir kombinasyonudur ve OS yeteneğini diğer cihazları geçici olarak kullanılmayan veri depolamak için kullanarak uzay simülasyonu (yanisabit disk taşımak sayfalar).
  • Yığın (Yerel olarak bildirilen değişkenler).
    Boyut sınırı burada tanımlanmış derleyici (olası bir donanım sınırları ile). Eğer derleyici belgelerine okursanız genellikle bu boyutu değiştirebilirsiniz.

Böylece eğer dinamik (sınırı büyük ve diğer mesajlar tarafından ayrıntılı olarak tarif etti. bir dizi atarsanız

int* a1 = new int[SIZE];  // SIZE limited only by OS/Hardware

Alternatif olarak, eğer dizi yığında ayrılmış ise çerçeve yığın büyüklüğü ile sınırlıdır.N. B.vektörler ve diğer kaplar küçük bir varlık yığını var ama genellikle veri yığın yığın olacak.

int a2[SIZE]; // SIZE limited by COMPILER to the size of the stack frame

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Christopher Bill

    Christopher

    30 NİSAN 2009
  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • RaverX DouBle StAg XI

    RaverX DouBl

    23 Mayıs 2008