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?
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?
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.
Açık cevap için teşekkür ederiz. –
Standart C++ ile ham dizi olarak yapamazsınız. Bunun yerine bir 'std :: vector>' kullanın. –
Ama g ++ 'da doğru şekilde derlendi. –
GCC'nin VLA'ları (değişken uzunluklu dizileri) desteklemek için bir ekstansiyonu vardır. –