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
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.
Nasıl yerel şube yeniden?...
Nasıl button in yeniden boyutlandırıla...
Nasıl HTML kodu Sublime Text 2 kullana...
Nasıl Gıt etiketi yeniden adlandırmak ...
Nasıl yeniden yükleme yapabilirim .çık...