... хотите установить для всех элементов массива значение 0
Для инициализации (присваивания во время объявления), различные варианты.
Pol pol1 = { .order = 0, .coefficients = { 0 } }; // Declare members in desired order
Pol pol2 = { .coefficients = { 0 }, .order = 0 };
Pol pol3 = { .order = 0, .coefficients = { 0.0f } }; // A float constant for clarity
Pol pol4 = { { 0.0f }, 0 }; // Order matches declaration
Pol pol5 = { 0 }; // All set to 0
Обратите внимание, что при частичной явной инициализации остальные члены / элементы массива получают значение 0.(0 для целочисленных типов, 0,0 для FP, типов, некоторые нулевой указатель для типов указателей.)
В C нет частичной инициализации, все или ничего.
Чтобы назначить , прямое решение - использовать цикл.
pol->order = 0;
for(i = 0; i < N_MAX; i++) {
pol->coefficients[i] = 0.0f;
}
Но почему?Все, что нужно для кода:
pol->order = 0;
pol->coefficients[0] = 0.0f;
Смысл наличия члена .order
состоит в том, чтобы масштабировать работу до используемого размера массива, как это сделано в readPol(Pol* pol)
и println(int n)
.Не тратить время на назначение неиспользуемых элементов массива.