A Normal işlev (printArray gibi) diziyi ve bir dizinin öğelerini yazdırmak için boyutunu (2 argümanı) alır.C++ Özel Durum: Dizileri Atma ve yakalamada dizi boyutunu alma
Aynı istisnayı kullanarak nasıl yapılır? Daha tam olarak, işleyici yakalamak için dizi boyutunu geçmek nasıl? (Bir dış SIPE'nin dışarıdan denemeyi beyan ettiğine varsayarak) örn.
//void printArray(int* foo ,int size);
int foo[] = { 16, 2, 77, 40, 12071 };
//printArray(foo,5); //OK, function call using array accepts size=5
try{
//do something
throw foo;
}
catch (int* pa)
{
//I have to get array size to loop through and print array values
// How to get array size?
}
şimdiden teşekkürler
Sen şu şekilde bir çift olarak diziyi ve boyutunu hem atabilir
Bu işlev dizinin içinde neden denemeyi denediniz? int foo [] = {16, 2, 77, 40, 12071}; –
Bir std :: vektörü atın. –
@Ashot - özür dilerim, int foo [] = {16, 2, 77, 40, 12071}; denemeden önce satırda yatıyor {. Yukarıdaki kodu düzenledim. Teşekkürler Jerry, evet vektör işe yaramıyor, ama temel C++ dizi – Sree