Advertisement
avr39-ripe

arr2dDynSBD192Practice

Apr 18th, 2020
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. void printArr2d(T arr2d[][3], int ySize, int xSize)
  5. {
  6.     for (int y{ 0 }; y < ySize; ++y)
  7.     {
  8.         for (int x{ 0 }; x < xSize; ++x)
  9.         {
  10.             std::cout << arr2d[y][x] << ' ';
  11.         }
  12.         std::cout << '\n';
  13.     }
  14. }
  15.  
  16. template <typename T>
  17. void printArr2dDyn(T** arr2d, int ySize, int xSize)
  18. {
  19.     for (int y{ 0 }; y < ySize; ++y)
  20.     {
  21.         for (int x{ 0 }; x < xSize; ++x)
  22.         {
  23.             std::cout << arr2d[y][x] << ' ';
  24.         }
  25.         std::cout << '\n';
  26.     }
  27. }
  28.  
  29. template <typename T>
  30. void fillArr2dDyn(T** arr2d, int ySize, int xSize)
  31. {
  32.     for (int y{ 0 }; y < ySize; ++y)
  33.     {
  34.         for (int x{ 0 }; x < xSize; ++x)
  35.         {
  36.             arr2d[y][x] = rand()%20;
  37.         }
  38.     }
  39. }
  40.  
  41. template <typename T>
  42. void printArr(T* arr, int xSize)
  43. {
  44.     for (int x{ 0 }; x < xSize; ++x)
  45.     {
  46.         std::cout << arr[x] << ' ';
  47.     }
  48.     std::cout << '\n';
  49. }
  50.  
  51. int main()
  52. {
  53.     const int ySize{ 3 };
  54.     const int xSize{ 3 };
  55.     int arr2d[ySize][xSize]{ {1,2,3},{4,5,6},{7,8,9} };
  56.  
  57.  
  58.     //int arr[xSize]{ 1,2,3 };
  59.     //int* arrDyn{ new int[xSize] {11,21,31} };
  60.  
  61.     //printArr(arr, xSize);
  62.     //std::cout << '\n';
  63.     //printArr(arrDyn, xSize);
  64.     int** arr2dDyn{ new int* [ySize] {} };
  65.  
  66.     int* bigArr{ new int[ySize * xSize]{21,22,23,24,25,26,27,28,29} };
  67.  
  68.     //for (int y{ 0 }; y < ySize; ++y)
  69.     //{
  70.     //  arr2dDyn[y] = new int[xSize] {};
  71.     //}
  72.  
  73.     for (int y{ 0 }; y < ySize; ++y)
  74.     {
  75.         arr2dDyn[y] = bigArr + y * xSize;
  76.     }
  77.  
  78.    
  79.     printArr2dDyn(arr2dDyn, ySize, xSize);
  80.     std::cout << '\n';
  81.     fillArr2dDyn(arr2dDyn, ySize, xSize);
  82.     printArr2dDyn(arr2dDyn, ySize, xSize);
  83.     //printArr2d(arr2d, ySize, xSize);
  84.  
  85.     //for (int y{ 0 }; y < ySize; ++y)
  86.     //{
  87.     //  delete[] arr2dDyn[y];
  88.     //}
  89.     delete[] bigArr;
  90.     delete[] arr2dDyn;
  91.  
  92.     std::cout << '\n';
  93.  
  94.     for (int x{ 0 }; x < ySize * xSize; ++x)
  95.     {
  96.  
  97.             std::cout << ((int*)arr2d)[x] << ' ';
  98.     }
  99.  
  100.  
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement