Просто определите структуру как:
struct monthlyData {
float rainfall;
float highTemp;
float lowTemp;
float avgTemp;
};
А затем создайте массив этой структуры в функции, где вам это нужно:
void f() {
monthlyData month[12];
//use month
}
Теперь массив не является глобальной переменной. Это локальная переменная, и вы должны передать эту переменную другим функциям, чтобы другие функции могли использовать такой же массив А вот как вы должны это пройти:
void otherFunction(monthlyData *month) {
// process month
}
void f() {
monthlyData month[12];
// use month
otherFunction(month);
}
Обратите внимание, что otherFunction
предполагает, что размер массива равен 12
(постоянное значение). Если размер может быть любым, тогда вы можете сделать это вместо:
void otherFunction(monthlyData *month, int size) {
// process month
}
void f() {
monthlyData month[12];
// use month
otherFunction(month, 12); //pass 12 as size
}