SORU
5 ŞUBAT 2010, Cuma


Nasıl C new operatörü ile hafıza yeniden ?

Sadece C içine girmeye başladım ve bazı iyi alışkanlıklar almak istiyorum. Eğer sadece new operatörü ile bir dizi türü int ayrılan var, nasıl hepsini döngü 0 hepsini yeniden kendi başıma yapabilir miyim? Sadece memset kullanmalıyım? "; C & " bunu yapmak için bir yolu var mı?

CEVAP
5 ŞUBAT 2010, Cuma


Bu şaşırtıcı derecede az bilinen özelliği C (olarak gösterdiği gerçeğini kimse göz önüne alarak bu gibi bir cevap henüz), ama aslında özel sözdizimi için varsayılan başlatma dizisi (iyi, teknik olarak, o da "değer-başlatılamıyor" Standart):

new int[10]();

Unutmayıngerekirboş parantez kullanamazsınız ... örneğin, (0) veya başka bir ifade bu, yalnızca varsayılan başlatma için yararlıdır ediliyor () kullanın.

Bu açıkça ISO C 03 5.3.4[ifade izin yeni] yazan/15,:

T türü bir nesne oluşturur yeni-ifade eden aşağıdaki gibi bir nesne başlatır

...

  • Öğe değer başlatıldı (8.5). eğer yeni başlatıcı formu (varsa),

ve bu izin türleri kısıtlamaz, (expression-list) şeklinde açıkça aynı bölümde daha da kurallarına göre yasak ise bir dizi tanımlamak için izin vermez.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006
  • Wild Academy

    Wild Academy

    8 Aralık 2009