Основываясь на ваш, как вы описали ваши данные, это звучит, как у вас есть ряд отметки времени показаний температуры для куча названных станций/мест/и т.д., что-то вроде
Location A Location B
---------- ----------
time1 -> temp1 time1 -> temp1
time2 -> temp2 time2 -> temp2
... ...
timeN -> tempN timeN -> tempN
где временные метки могут или не могут выстраиваться между станциями.
Это близко к вашей ситуации?
Если да, то следующая модель может быть полезна:
struct TimeAndTemp
{
time_t timestamp;
double temp;
};
struct Station
{
char name[L+1]; // L is max name length
struct TimeAndTemp readings[M]; // M is max readings per station
};
struct Station stations[N]; // array of stations, each station has a name
// and contains a list of timestamped
// temperature readings.
Вы бы доступ к полям, как так:
strcpy(stations[i].name, newName);
printf("Station name is %s\n", stations[i].name);
if (strcmp(stations[i].name, searchName) == 0) { ... }
stations[i].readings[j].timestamp = newTime();
stations[i].readings[j].temp = newTemp();
printf("Station %s reading at time %s: %f\n",
stations[i].name,
ctime(&stations[i].readings[j].timestamp),
stations[i].readings[j].temp);
Это простейшее модель, которая предполагает фиксированное число станций и фиксированной максимальное количество показаний на станцию. Если вы хотите что-то более открытое, вы можете использовать связанные списки вместо массивов.
Как создать пользовательский тип данных с помощью 'struct'? –
..или возможно даже профсоюзную структуру? –
so: struct block { char attributeUid [8]; int [] время; float [] temp; }; , и я смогу ссылаться на них, как на обычный массив? –