Nagłówek (linia 12) ma inne parametry niż sama funkcja (linia 23). W C++ to się skompiluje, bo jest przeciążanie, wyjdzie coś dziwnego.
Tablica ma 49 pozycji - indeks 49 (linie 26-27) to poza zakresem. Numer ten tak ogólnie powinien być wczytany do jakiejś zmiennej lokalnej.
Numer to int, po co porównywać go do false (linia 27)? Skompilować się pewnie skompiluje bo false to 0, ale czy o to chodzi? Z komunikatu pod else wynika że chodzi o zajętość skrzynki? To inne pole.
Wczytujesz wszystko do elementu o zerowym indeksie (np. dane->wysokość). Na pewno o to chodzi? A nie o dane[numer].wysokość ? Kompilator oczywiście to łyknie, ale co wyjdzie?