Нет, не должно. Массив SPAM
значений выражается через один указатель, поэтому SPAM *spams
является правильным.
Причина, по которой параметру функции getSPAMANDEGGS
нужны две звездочки, заключается в том, что устанавливает указатель, передаваемый ему извне:
EGG *eggArray; // First asterisk is due to *
int eggArraySize = getSPAMANDEGGS(&eggArray); // Second asterisk is due to &
Без оператора &
getSPAMANDEGGS
не сможет установить новое значение для указателя eggArray
.