diff --git a/MeshLib/Elements/HexRule20.cpp b/MeshLib/Elements/HexRule20.cpp
index c854c0faa83d42d05eb81c22bad8aeffc33f9f6e..10eab7bf10ebc4f9ca10442cb344fd4fbaefa65b 100644
--- a/MeshLib/Elements/HexRule20.cpp
+++ b/MeshLib/Elements/HexRule20.cpp
@@ -48,7 +48,7 @@ const Element* HexRule20::getFace(const Element* e, unsigned i)
 {
     if (i < n_faces)
     {
-        std::array<Node*, 8> nodes;
+        std::array<Node*, 8> nodes{};
         for (unsigned j = 0; j < 8; j++)
         {
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
diff --git a/MeshLib/Elements/HexRule8.cpp b/MeshLib/Elements/HexRule8.cpp
index 31526574a6527abc71ba0c4ff8dc1c0c1f2a72e3..98d26c6e101784d539677172becf4bf5f7ec107a 100644
--- a/MeshLib/Elements/HexRule8.cpp
+++ b/MeshLib/Elements/HexRule8.cpp
@@ -52,7 +52,7 @@ const Element* HexRule8::getFace(const Element* e, unsigned i)
 {
     if (i < n_faces)
     {
-        std::array<Node*, 4> nodes;
+        std::array<Node*, 4> nodes{};
         for (unsigned j = 0; j < 4; j++)
         {
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
diff --git a/MeshLib/Elements/TetRule10.cpp b/MeshLib/Elements/TetRule10.cpp
index 1a75211da36bec9ab57451e622a4a0ee1af81416..3679ad84a8c0fcdf18a5b63b77e65e134c684bde 100644
--- a/MeshLib/Elements/TetRule10.cpp
+++ b/MeshLib/Elements/TetRule10.cpp
@@ -42,7 +42,7 @@ const Element* TetRule10::getFace(const Element* e, unsigned i)
 {
     if (i<n_faces)
     {
-        std::array<Node*,6> nodes;
+        std::array<Node*,6> nodes{};
         for (unsigned j = 0; j < 6; j++)
         {
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
diff --git a/MeshLib/Elements/TetRule4.cpp b/MeshLib/Elements/TetRule4.cpp
index 26fa1a874971fdbc1856ea85bd8904cf34f172fb..4e6bfbe797c38ac2826c904f0d3eec01d5fd527c 100644
--- a/MeshLib/Elements/TetRule4.cpp
+++ b/MeshLib/Elements/TetRule4.cpp
@@ -44,7 +44,7 @@ const Element* TetRule4::getFace(const Element* e, unsigned i)
 {
     if (i<n_faces)
     {
-        std::array<Node*,3> nodes;
+        std::array<Node*,3> nodes{};
         for (unsigned j = 0; j < 3; j++)
         {
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
diff --git a/MeshLib/MeshEditing/MeshRevision.cpp b/MeshLib/MeshEditing/MeshRevision.cpp
index c02e24e73592e91d06a5cc8ec0715b37d0c3391f..fbcc446b5cb881c5049a3f00cc7f77d3194c2f85 100644
--- a/MeshLib/MeshEditing/MeshRevision.cpp
+++ b/MeshLib/MeshEditing/MeshRevision.cpp
@@ -833,7 +833,7 @@ unsigned MeshRevision::lutHexDiametralNode(unsigned id) const
 std::array<unsigned, 4> MeshRevision::lutHexCuttingQuadNodes(unsigned id1,
                                                              unsigned id2) const
 {
-    std::array<unsigned,4> nodes;
+    std::array<unsigned,4> nodes{};
     if      (id1==0 && id2==1) { nodes[0]=3; nodes[1]=2; nodes[2]=5; nodes[3]=4; }
     else if (id1==1 && id2==2) { nodes[0]=0; nodes[1]=3; nodes[2]=6; nodes[3]=5; }
     else if (id1==2 && id2==3) { nodes[0]=1; nodes[1]=0; nodes[2]=7; nodes[3]=6; }
diff --git a/MeshLib/MeshGenerators/MeshLayerMapper.cpp b/MeshLib/MeshGenerators/MeshLayerMapper.cpp
index 571b34811d83270b17f987d5c789dd0ae252a01f..1fe12fe65399ddc9fb0ef869c572f5a88be9721b 100644
--- a/MeshLib/MeshGenerators/MeshLayerMapper.cpp
+++ b/MeshLib/MeshGenerators/MeshLayerMapper.cpp
@@ -219,7 +219,7 @@ void MeshLayerMapper::addLayerToMesh(const MeshLib::Mesh &dem_mesh, unsigned lay
         }
         unsigned node_counter(3);
         unsigned missing_idx(0);
-        std::array<MeshLib::Node*, 6> new_elem_nodes;
+        std::array<MeshLib::Node*, 6> new_elem_nodes{};
         for (unsigned j=0; j<3; ++j)
         {
             new_elem_nodes[j] = _nodes[_nodes[last_layer_node_offset + elem->getNodeIndex(j)]->getID()];
@@ -242,6 +242,7 @@ void MeshLayerMapper::addLayerToMesh(const MeshLib::Mesh &dem_mesh, unsigned lay
             _materials.push_back(layer_id);
             break;
         case 5:
+        {
             std::array<MeshLib::Node*, 5> pyramid_nodes;
             pyramid_nodes[0] = new_elem_nodes[pyramid_base[missing_idx][0]];
             pyramid_nodes[1] = new_elem_nodes[pyramid_base[missing_idx][1]];
@@ -251,12 +252,15 @@ void MeshLayerMapper::addLayerToMesh(const MeshLib::Mesh &dem_mesh, unsigned lay
             _elements.push_back(new MeshLib::Pyramid(pyramid_nodes));
             _materials.push_back(layer_id);
             break;
+        }
         case 4:
+        {
             std::array<MeshLib::Node*, 4> tet_nodes;
             std::copy(new_elem_nodes.begin(), new_elem_nodes.begin() + node_counter, tet_nodes.begin());
             _elements.push_back(new MeshLib::Tet(tet_nodes));
             _materials.push_back(layer_id);
             break;
+        }
         default:
             continue;
         }
diff --git a/MeshLib/MeshGenerators/QuadraticMeshGenerator.cpp b/MeshLib/MeshGenerators/QuadraticMeshGenerator.cpp
index 19e92bf2846f7765f33b0feda837273f6d8d47c3..806e8e5dece5ab1b4345d2f57808910998545aca 100644
--- a/MeshLib/MeshGenerators/QuadraticMeshGenerator.cpp
+++ b/MeshLib/MeshGenerators/QuadraticMeshGenerator.cpp
@@ -31,7 +31,7 @@ std::unique_ptr<QuadraticElement> convertLinearToQuadratic(
     assert(n_base_nodes == e.getNumberOfBaseNodes());
 
     // Copy base nodes of element to the quadratic element new nodes'.
-    std::array<MeshLib::Node*, n_all_nodes> nodes;
+    std::array<MeshLib::Node*, n_all_nodes> nodes{};
     for (int i = 0; i < n_base_nodes; i++)
     {
         nodes[i] = const_cast<MeshLib::Node*>(e.getNode(i));
diff --git a/MeshLib/MeshSearch/MeshElementGrid.cpp b/MeshLib/MeshSearch/MeshElementGrid.cpp
index e6f5479097ffbfbf69baee7630fe85f71ae0255e..fe0e69527661efba62d2854347223c5b4b50b4fa 100644
--- a/MeshLib/MeshSearch/MeshElementGrid.cpp
+++ b/MeshLib/MeshSearch/MeshElementGrid.cpp
@@ -123,8 +123,8 @@ void MeshElementGrid::sortElementsInGridCells(MeshLib::Mesh const& sfc_mesh)
 
 bool MeshElementGrid::sortElementInGridCells(MeshLib::Element const& element)
 {
-    std::array<std::size_t,3> min;
-    std::array<std::size_t,3> max;
+    std::array<std::size_t,3> min{};
+    std::array<std::size_t,3> max{};
     std::pair<bool, std::array<std::size_t, 3>> c(
         getGridCellCoordinates(*(static_cast<MathLib::Point3d const*>(element.getNode(0)))));
     if (c.first) {
@@ -183,7 +183,7 @@ std::pair<bool, std::array<std::size_t, 3>>
 MeshElementGrid::getGridCellCoordinates(MathLib::Point3d const& p) const
 {
     bool valid(true);
-    std::array<std::size_t, 3> coords;
+    std::array<std::size_t, 3> coords{};
 
     for (std::size_t k(0); k<3; ++k) {
         const double d(p[k]-_aabb.getMinPoint()[k]);
diff --git a/MeshLib/MeshSearch/MeshElementGrid.h b/MeshLib/MeshSearch/MeshElementGrid.h
index 5887c4abc62e0821a7dafce4b8d6a3009d352a9c..4e80f6bef597efa00eeabb359ab8768e9628608d 100644
--- a/MeshLib/MeshSearch/MeshElementGrid.h
+++ b/MeshLib/MeshSearch/MeshElementGrid.h
@@ -84,8 +84,8 @@ private:
     /// false.
     std::pair<bool, std::array<std::size_t,3>>
         getGridCellCoordinates(MathLib::Point3d const& p) const;
-    std::array<double,3> _step_sizes;
-    std::array<double,3> _inverse_step_sizes;
+    std::array<double,3> _step_sizes{};
+    std::array<double,3> _inverse_step_sizes{};
     std::array<std::size_t,3> _n_steps;
     std::vector<std::vector<MeshLib::Element const*>> _elements_in_grid_box;
 };
diff --git a/MeshLib/Vtk/VtkMappedMeshSource.cpp b/MeshLib/Vtk/VtkMappedMeshSource.cpp
index 692a087aae97cc2a248026275da007b8a6c221ff..fe485b9472a0b89e62cf1e60d55305cf60bcbd71 100644
--- a/MeshLib/Vtk/VtkMappedMeshSource.cpp
+++ b/MeshLib/Vtk/VtkMappedMeshSource.cpp
@@ -113,7 +113,7 @@ int VtkMappedMeshSource::RequestData(vtkInformation* /*request*/,
         }
         else if (cellType == VTK_QUADRATIC_WEDGE)
         {
-            std::array<vtkIdType, 15> ogs_nodeIds;
+            std::array<vtkIdType, 15> ogs_nodeIds{};
             for (unsigned i = 0; i < 15; ++i)
             {
                 ogs_nodeIds[i] = ptIds->GetId(i);
diff --git a/MeshLib/Vtk/VtkMappedMeshSource.h b/MeshLib/Vtk/VtkMappedMeshSource.h
index 45200cc578b492ac7ca16b5e0f66e5dc272eed9c..0de774ab34a9266582fea5d4c3a38b361475e951 100644
--- a/MeshLib/Vtk/VtkMappedMeshSource.h
+++ b/MeshLib/Vtk/VtkMappedMeshSource.h
@@ -82,7 +82,7 @@ private:
     bool addProperty(MeshLib::Properties const& properties,
                      std::string const& prop_name) const;
 
-    const MeshLib::Mesh* _mesh;
+    const MeshLib::Mesh* _mesh{};
 
     int NumberOfDimensions{0};
     int NumberOfNodes{0};
diff --git a/Tests/MeshLib/TestElementConstants.cpp b/Tests/MeshLib/TestElementConstants.cpp
index 0cd5385c5d271e16b7139caca83d757073f7a739..988b0d4315983cc0f351347fd45598e807dd193e 100644
--- a/Tests/MeshLib/TestElementConstants.cpp
+++ b/Tests/MeshLib/TestElementConstants.cpp
@@ -20,7 +20,7 @@ TEST(MeshLib, ElementConstantsQuad4)
     ASSERT_EQ(4u, Quad::n_all_nodes);
     ASSERT_EQ(4u, Quad::n_base_nodes);
 
-    std::array<Node*, 4> nodes;
+    std::array<Node*, 4> nodes{};
     nodes[0] = new Node(0.0, 0.0, 0.0);
     nodes[1] = new Node(0.0, 1.0, 0.0);
     nodes[2] = new Node(1.0, 1.0, 0.0);
@@ -43,7 +43,7 @@ TEST(MeshLib, ElementConstantsQuad8)
     ASSERT_EQ(8u, Quad8::n_all_nodes);
     ASSERT_EQ(4u, Quad8::n_base_nodes);
 
-    std::array<Node*, 8> nodes;
+    std::array<Node*, 8> nodes{};
     nodes[0] = new Node(0.0, 0.0, 0.0);
     nodes[1] = new Node(0.0, 1.0, 0.0);
     nodes[2] = new Node(1.0, 1.0, 0.0);
@@ -72,7 +72,7 @@ TEST(MeshLib, ElementConstantsQuad9)
     ASSERT_EQ(9u, Quad9::n_all_nodes);
     ASSERT_EQ(4u, Quad9::n_base_nodes);
 
-    std::array<Node*, 9> nodes;
+    std::array<Node*, 9> nodes{};
     nodes[0] = new Node(0.0, 0.0, 0.0);
     nodes[1] = new Node(0.0, 1.0, 0.0);
     nodes[2] = new Node(1.0, 1.0, 0.0);
@@ -102,7 +102,7 @@ TEST(MeshLib, ElementConstantsHex8)
     ASSERT_EQ(8u, Hex::n_all_nodes);
     ASSERT_EQ(8u, Hex::n_base_nodes);
 
-    std::array<Node*, 8> nodes;
+    std::array<Node*, 8> nodes{};
     nodes[0] = new Node(0.0, 0.0, 0.0);
     nodes[1] = new Node(0.0, 1.0, 0.0);
     nodes[2] = new Node(1.0, 1.0, 0.0);
@@ -129,7 +129,7 @@ TEST(MeshLib, ElementConstantsHex20)
     ASSERT_EQ(20u, Hex20::n_all_nodes);
     ASSERT_EQ( 8u, Hex20::n_base_nodes);
 
-    std::array<Node*, 20> nodes;
+    std::array<Node*, 20> nodes{};
     nodes[0] = new Node(0.0, 0.0, 0.0);
     nodes[1] = new Node(1.0, 0.0, 0.0);
     nodes[2] = new Node(1.0, 1.0, 0.0);
@@ -168,7 +168,7 @@ TEST(MeshLib, ElementConstantsTet4)
     ASSERT_EQ(4u, Tet::n_all_nodes);
     ASSERT_EQ(4u, Tet::n_base_nodes);
 
-    std::array<Node*, 4> nodes;
+    std::array<Node*, 4> nodes{};
     nodes[0] = new Node(0.0, 0.0, 0.0);
     nodes[1] = new Node(1.0, 0.0, 0.0);
     nodes[2] = new Node(0.0, 1.0, 0.0);
@@ -191,7 +191,7 @@ TEST(MeshLib, ElementConstantsTet10)
     ASSERT_EQ(10u, Tet10::n_all_nodes);
     ASSERT_EQ( 4u, Tet10::n_base_nodes);
 
-    std::array<Node*, 10> nodes;
+    std::array<Node*, 10> nodes{};
     nodes[0] = new Node(0.0, 0.0, 0.0);
     nodes[1] = new Node(1.0, 0.0, 0.0);
     nodes[2] = new Node(0.0, 1.0, 0.0);
diff --git a/Tests/MeshLib/TestPntInElement.cpp b/Tests/MeshLib/TestPntInElement.cpp
index b3fd222bd4299716ef68ec32c27114f10b371b6a..48e86efef15272944b48885b122db2edf1fac5b9 100644
--- a/Tests/MeshLib/TestPntInElement.cpp
+++ b/Tests/MeshLib/TestPntInElement.cpp
@@ -109,7 +109,7 @@ TEST(IsPntInElement, Pyramid)
 {
     GeoLib::Point pnt;
     std::vector<MeshLib::Node*> nodes (createNodes());
-    std::array<MeshLib::Node*, 5> pyr_nodes;
+    std::array<MeshLib::Node*, 5> pyr_nodes{};
     std::copy(nodes.begin(), nodes.begin()+5, pyr_nodes.begin());
     MeshLib::Pyramid pyr(pyr_nodes);
 
@@ -144,7 +144,7 @@ TEST(IsPntInElement, Hex)
 {
     GeoLib::Point pnt;
     std::vector<MeshLib::Node*> nodes (createNodes());
-    std::array<MeshLib::Node*, 8> hex_nodes;
+    std::array<MeshLib::Node*, 8> hex_nodes{};
     std::copy(nodes.begin(), nodes.end(), hex_nodes.begin());
     MeshLib::Hex hex(hex_nodes);
 
diff --git a/Tests/MeshLib/TestTriLineMesh.cpp b/Tests/MeshLib/TestTriLineMesh.cpp
index cba370d50ed81cc365421d84d7722aa7d67f685b..29ab4b79d8193f336fa7d920fd61d9116ded24b5 100644
--- a/Tests/MeshLib/TestTriLineMesh.cpp
+++ b/Tests/MeshLib/TestTriLineMesh.cpp
@@ -25,7 +25,7 @@ class MeshLibTriLineMesh : public ::testing::Test
         nodes.push_back(new MeshLib::Node(0, 1, 0));
         nodes.push_back(new MeshLib::Node(1, 1, 0));
 
-        std::array<MeshLib::Node*, 3> t_nodes;
+        std::array<MeshLib::Node*, 3> t_nodes{};
         t_nodes[0] = nodes[0];
         t_nodes[1] = nodes[1];
         t_nodes[2] = nodes[2];
@@ -36,7 +36,7 @@ class MeshLibTriLineMesh : public ::testing::Test
         t_nodes[2] = nodes[2];
         elements.push_back(new MeshLib::Tri(t_nodes));
 
-        std::array<MeshLib::Node*, 2> l_nodes;
+        std::array<MeshLib::Node*, 2> l_nodes{};
         l_nodes[0] = nodes[1];
         l_nodes[1] = nodes[2];
         elements.push_back(new MeshLib::Line(l_nodes));