Если я правильно понимаю ваш вопрос, я думаю, что ваша проблема связана с вашей fillStruct()
функцией. L oop в этой функции будет выполняться только один раз, а не N раз. Вы никогда не превышаете k = 0, поэтому вы устанавливаете элемент num
для array[0]
, а затем возвращаете array[0]
.
Когда вы возвращаетесь к своей основной функции, вы точно печатаете местоположение для array[0]
, но последующие номера сайтов в массиве являются просто случайными неинициализированными значениями.
Вместо этого вы хотите, чтобы оператор return находился за пределами блока l oop, поэтому функция должна выглядеть так: *
site fillStruct(site array[], int size) {
int k;
for (k = 0; k < size; k++) {;
array[k].num = k;
}
return array[k-1]; // Returns the last site in the array
}
Теперь, когда вы вернетесь к своему главному Функция у вас будет 20 сайтов с номерами от 0 до 19 (для N = 20).
Также обратите внимание, что в приведенном вами коде вы не используете возвращаемое значение fillStruct()
.
Надеюсь, это поможет, дайте мне знать, если я что-то пропустил.