It is all hidden in the documentation:
SetSize[
^]
Establishes the size of an empty or existing array; allocates memory if necessary.
SetAtGrow[
^]
Sets the array element at the specified index.
Remarks
The array grows automatically if necessary (that is, the upper bound is adjusted to accommodate the new element).