Advertisement
amermo

neka alokacija

Apr 17th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. bool TestirajIspravnost(int niz[], int duzina)
  4. {
  5.     for (int i(0); i < duzina; i++)
  6.         if (niz[i] < 0)
  7.             return false;
  8.     return true;
  9. }
  10.  
  11. template <typename T>
  12. T **Alociraj(int niz[], int duzina)
  13. {
  14.     if (!TestirajIspravnost(niz, duzina)) throw std::domain_error("Greska");
  15.     T **p = new T*[duzina];
  16.     for (int i(0); i < duzina; i++)
  17.         p[i] = nullptr;
  18.     try
  19.     {
  20.         for (int i(0); i < duzina; i++)
  21.             p[i] = new T[niz[i]];
  22.         for (int i(0); i < duzina; i++)
  23.             for (int j(0); j < niz[i]; j++)
  24.                 p[i][j] = T();
  25.     }
  26.     catch (std::bad_alloc)
  27.     {
  28.         for (int i(0); i < duzina; i++)
  29.             delete[] p[i];
  30.         delete[] p;
  31.         throw;
  32.     }
  33.     return p;
  34. }
  35.  
  36. int main()
  37. {
  38.     int niz[5] {3, 5, 2, 8, 6 };
  39.     int **p = Alociraj<int>(niz, 5);
  40.     for (int i(0); i < 5; i++)
  41.     {
  42.         for (int j(0); j < niz[i]; j++)
  43.             std::cout << p[i][j] << " ";
  44.         std::cout << std::endl;
  45.     }
  46.     system("pause");
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement