WinNT.h'de bulunan ANYSIZE_ARRAY
'un amacı nedir?<winnt.h>'da ANYSIZE_ARRAY amacı nedir?
2004'ten bu yana bir MSDN blog yazısı görüyorum ama bana mantıklı gelmiyor. this page kaynaktan
WinNT.h'de bulunan ANYSIZE_ARRAY
'un amacı nedir?<winnt.h>'da ANYSIZE_ARRAY amacı nedir?
2004'ten bu yana bir MSDN blog yazısı görüyorum ama bana mantıklı gelmiyor. this page kaynaktan
this blog post hakkında konuşuyorsunuzdur.
Genellikle bir değişken büyüklükte (derleme zamanında bilinmeyen) dizi bir yapı parçası olduğunda kullanılır:
typedef struct {
int CommonFlags
int CountOfThings;
THING Things[ANYSIZE_ARRAY]; //Things[1];
} THINGSANDFLAGS;
bu yapılarla çalışmak için, genellikle ilk boyutunu almak için istenen apı'sini veri, daha sonra büyük bir bellek bloğu tahsis ve nihayet veriyi doldurabilmesi için tekrar aynı API'yi çağırın ...
Teşekkürler - neden bunu bağlantılı bir liste üzerinden kullanıyorsunuz? – jglouie
@LemonBeagle Bağlantılı bir liste daha fazla bellek gerektirir ve/veya API uygulaması bir dizideki öğeleri zaten içeriyor olabilir ve yalnızca arayanlar arabelleğine kaydedebilir. Ayrıca öğelerin listesini yürümek için daha yavaştır ve her bir öğeyi boşaltmanız yeterlidir ve sadece büyük bir arabellek değil ... – Anders
: C
, değişken boyutlu dizi
ANYSIZE_ARRAY
1
olarak tanımlanıra[1]
veyaa[ANYSIZE_ARRAY]
olarak bildirilmiştir. Daha sonra büyük gibi kullanılır.
Lütfen MSDN blog gönderisine bağlantı veriniz? –
@Agnel http://blogs.msdn.com/b/oldnewthing/archive/2004/08/26/220873.aspx – jglouie