Они не одинаковы.Объявление данных следующим образом:
struct s_myStruct stuff[MAGIC];
оставит память неинициализированной, если вы объявляете ее в области действия функции (которой вы должны быть, учитывая второй выбор).Добавление = {0}
до того, как точка с запятой исправляет это.
Второй вариант использования calloc выделяет память в куче.
Хотя всегда есть разница: sizeof(stuff)
будет 13 *sizeof (struct s_myStruct) в первом случае и размер указателя во втором случае.