Я пытаюсь найти размер массива указателей.Массив объявляется так:
Student *students[ROSTER_MAX];
, где ROSTER_MAX
- это статическая константа int, которая == 1024, а Student
- это объект, содержащий int и две строки.Я пытаюсь найти размер students
(например, количество элементов в массиве).До сих пор я пытался:
sizeof(students)/sizeof(*(students[0]));
и
sizeof(students)/sizeof(students[0]);
Если кто-нибудь может помочь мне понять, почему предыдущие два (особенно первый) не работают и предоставить альтернативу,было бы признательно!
обновление: я пытаюсь найти количество ненулевых элементов в массиве.Конструктор для класса массива (называемый Roster
):
Roster::Roster(){
this -> numStudents = 0;
for(int i = 0; i < ROSTER_MAX; i++){
this -> students[i] = NULL;
}
}
, поэтому я могу видеть, как приведенные выше строки кода приведут к 1024. Но я пытаюсь найти количество инициализированных элементов.