SORU
14 EKİM 2008, Salı


Nasıl C bir diziyi başlatmak için

C (eğer bir fark yapar C) büyük bir dizi var. Aynı değere tüm üyeleri başlatmak istiyorum. Bir keresinde basit bir şekilde bunu biliyordu yemin edebilirim. Benim durumumda memset() kullanabilirim, ama orada C sözdizimi yerleşik bunu yapmak için bir yol değil mi?

CEVAP
14 EKİM 2008, Salı


Bu değer 0 değilse, bu durumda başlatıcı bir kısmı atlayabilirsiniz ( ve karşılık gelen elemanları 0 başlatılmış olacak, kolay bir yolu yok.

Bariz çözüm, ama göz ardı etmeyin:

int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };

Eksik değerlere sahip elemanları 0 başlatılır:

int myArray[10] = { 1, 2 }; // initialize to 1,2,0,0,0...

Bu 0 tüm unsurları başlatılamıyor:

int myArray[10] = { 0 }; // all elements 0

C , boş başlatma bir liste de 0 olarak her eleman başlatılacaktır. Bu C not allowed

int myArray[10] = {}; // all elements 0 in C  

Statik depolama süresi ile nesneleri yok 0 başlatılacaktır unutmayın başlatıcı belirtilen:

static int myArray[10]; // all elements 0

Ve "0" değil "tüm bit sıfır", yani kullanarak yukarıda olduğunu memset daha iyi ve daha taşınabilir(). (Kayan nokta değerleri olacak 0 değeri null işaretçiler için başlatılmış, vb.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • iZAPPA

    iZAPPA

    16 Temmuz 2010
  • stewmurray47

    stewmurray47

    1 Kasım 2006
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011