Один из самых простых способов обработки массива без указания его длины - использовать защитное значение, например NULL
в качестве последнего значения.
Это приведет к коду, подобному следующему:
data array_of_data[4] = {
{"John", "24"},
{"Melissa", "32"},
{"Ludwing", "98"},
{NULL, NULL},
};
int main() {
int i=0;
while(array_of_data[i].name != NULL) {
printf("[%d] %s, %s\n", i, array_of_data[i].name, array_of_data[i].age);
i++;
}
}