@Owatch: I started with a plane that I subdivided evenly. I selected a vertex at one end of the zigzag and extruded 3 “floating” edges to draw the global shape. To make things easy I made sure that both ends were over another vertex and the 2 middle points over an edge.
I subdivided the 2 edges under the 2 middle points and moved the newly created vertices in position. I deleted the “floating” edges. I joined the 4 points of the zigzag with [J]. (Blender cuts all the edges in between as needed.) A bit of cleaning all around, especially to remove the tiny triangles.
I selected all the edges of the zigzag and used [CTRL B] to make faces instead of edges. A bit of cleaning all around again to remove the tiny triangles, to fix the overlapping corners, and to give a better shape to the zigzag.
After that, I simply selected all the faces of the zigzag and extruded them down. To make things better for the SubSurf, I added a bevel all around the hole. (Here, I should have cleaned the tiny triangles again… but I didn’t.)
A mirror modifier for the symmetry. I applied. I shifted the 2 halves, removed the doubles and recalculated the normals.
And then I could start to add the modifiers. The Bend is a bit tricky… because I never remember which axis of the empty it uses.
Nothing to say about the Array modifier except that it’s better to stay with “Fixed Count”. (Just leave it at 2 until you have your curve.)
I added a Circle curve. I scaled it, rotated it.
I added the Curve modifier to the zigzag plane and increased the count for the array until things fit approximately.
Then I carefully resized the zigzag plane in Edit mode along the X axis until both ends of the array were correctly joined. (Alas, the “First Last” merge option doesn’t work in this situation.)
Finally, I added a SubSurf modifier to make everything smoother.
Easy as pie!