Разница заключается в семантической информации. Если вы хотите сохранить свою информацию в виде списка, где нет семантического различия между разными членами этого списка, используйте массив. Возможно, каждый член списка представляет другое значение для одного и того же.
Если каждый из этих целых чисел представляет что-то особенное или другое, используйте struct
. Обратите внимание на последствия использования struct
, например, тот факт, что люди ожидают, что члены будут тесно связаны семантически.
struct
имеет другие преимущества перед массивом, которые могут сделать его более мощным. Например, его способность инкапсулировать несколько типов данных.
Если вы передаете эту информацию между многими функциями, структура, скорее всего, более практична (потому что нет необходимости передавать размер). Было бы плохо передать массив (который распадается на указатель) и ожидать, что собеседник узнает, сколько элементов находится в массиве. Использование struct
неявно делает эту часть контракта функции.
С точки зрения размера, нет разницы. 4 байта int обычно выравнивается по 4 байт.
Вопрос здесь слишком открыт. Структуры хороши, потому что это позволяет смешивать различные типы данных и использовать их «как один», массивы хороши для однородной коллекции одних и тех же типов .. действительно будет зависеть от намерения программы и других факторов. Например, если построено на архитектуре ARM, в регистрах передаются только первые 4 аргумента (в C++ это 3, так как первый регистр будет использоваться для этого указателя), поэтому, если у вас больше аргументов, полезно использовать связать его в структуре и передать указатель на это – NullPointer