fork(3) download
  1. #include <memory>
  2. #include <iostream>
  3.  
  4. template <typename T>
  5. void printArr(T const &arr)
  6. {
  7. std::cout << typeid(T).name() << "\t";
  8. for (int x = 0; x < 2; ++x)
  9. for (int y = 0; y < 2; ++y)
  10. for (int z = 0; z < 2; ++z)
  11. std::cout << arr[x][y][z] << " ";
  12. std::cout << std::endl;
  13. }
  14.  
  15.  
  16. int main()
  17. {
  18. int(&arr)[2][2][2] = reinterpret_cast<int(&)[2][2][2]>(*new int[2][2][2]{ { { 1,2 },{ 3,4 } }, { { 5,6 },{ 7,8 } } });
  19. printArr(arr);
  20. delete[] &arr;
  21.  
  22. int(*arr2)[2][2] = new int[2][2][2]{ { { 1,2 },{ 3,4 } },{ { 5,6 },{ 7,8 } } };
  23. printArr(arr2);
  24. delete[] arr2;
  25.  
  26. std::unique_ptr<int[][2][2]> arr3(new int[2][2][2]{ { { 1,2 },{ 3,4 } },{ { 5,6 },{ 7,8 } } });
  27. printArr(arr3);
  28.  
  29. std::unique_ptr<int[][2][2]> arr4 = std::make_unique<int[][2][2]>(2);
  30. printArr(arr4);
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 4304KB
stdin
Standard input is empty
stdout
A2_A2_A2_i	1 2 3 4 5 6 7 8 
PA2_A2_i	1 2 3 4 5 6 7 8 
St10unique_ptrIA_A2_A2_iSt14default_deleteIS2_EE	1 2 3 4 5 6 7 8 
St10unique_ptrIA_A2_A2_iSt14default_deleteIS2_EE	0 0 0 0 0 0 0 0