2016-03-27 31 views
-1
void foo (int k) 
{ 

int C[size(k)][size(k)]; 

C[1][2] = 4; 

std::cout << C[1][2]; 

} 

Bu kod nasıl doğru şekilde derlenir?Sabit olmayan bir değişkeni temel alan bir dizi bildirilsin mi?

+0

Standart C++ ile ham dizi olarak yapamazsınız. Bunun yerine bir 'std :: vector >' kullanın. –

+0

Ama g ++ 'da doğru şekilde derlendi. –

+1

GCC'nin VLA'ları (değişken uzunluklu dizileri) desteklemek için bir ekstansiyonu vardır. –

cevap

1

G ++ ile derleme kodlarsınız, çünkü bu uzantı olarak değişken uzunluklu dizileri destekler; bkz. 6.19 Arrays of Variable Length

Standart C++ 'un bir özelliği değil, bu nedenle diğer derleyicilerle çalışması gerekmez.

Eğer g ++ bu tür bir şeyden şikayet etmek isterseniz, -pedantic numaralı telefonu verin.

+0

Açık cevap için teşekkür ederiz. –

İlgili konular