Curve Driven Array/Pattern(Blender Version: 2.81):
Curve Driven Pattern or Array is used when we want to repeat objects along a specified path or a curve, it may be open or closed curve.
This can be achieved by using “Array + Curve” modifiers. The procedure to make curve driven array is explained below:

1. Insert the Curve/Path which drives the object:
Ex: Shift+A >> Curve >> Circle
Scale the Circle/Curve which is inserted if required : S >> 10 times (For Example)
​
2. Selecting the curve, Goto Edit mode, Select one of the Control points, then Shift the 3D Cursor to the selected control point by pressing:: Shift+S >> Cursor to Selected

3. Exit the edit mode and shift the Origin of the Curve to the selected control point: Object >> Transform >> Origin to 3D Cursor or Shift+Ctrl+Alt+C
4. Now Insert object to the 3D cursor Shift + A >> Mesh >> select mesh
or
Transform the existing Select the existing object and Shift + S >> Selection to Cursor
​
5. Scale the object inserted as required and Apply the object transforms to defaults by pressing Ctrl+A >> Rotation and Scale
​
6. Applying Modifiers:
i. Selecting the Object Apply Array Modifier:: Modifiers >> Array,
In Fit Type:: select Fit Curve (For Selecting the Curve length to distribute objects along the curve)
In Curve: Select Curve
In Relative offset: Provide some value (To offset objects in Array)
​
Next,
​
ii. Apply Curve Modifier:: Modifiers >> Curve, In Object:: Select Curve, In Deformation Axis:: Select “X”

This generates a pattern along the specified curve.
You can also Vary the Fit Type in Array Modifier to Fit Length or Fixed Length and see how it is different from the other.
​
Same procedure can be extended to different types of paths it may be open path or closed path