Mam problem z rozwiązaniem zadania, które pojawiło się na zajęciach z programowania w C++. Nikt na naszym roku nie potrafił go rozwiązać, w związku z czym pomyślałem, że może tutaj znajdzie się ktoś, kto by sobie z nim poradził.
Sytuacja wygląda następująco: otrzymujemy od prowadzącego plik źródłowy, którego nie możemy edytować. Znajduje się w nim dyrektywa #include, która pozwala nam niejako wszczepić do środka swój kod i w tej sposób sprawić, żeby całość się kompilowała. Zaznaczam od razu, że problemem nie jest rozwiązanie merytorycznej części zadania (nie ma na nią nawet co patrzeć), ale dwie kropki w 8 linijce, które powodują błąd kompilacji. Oto kod:
//Tego pliku NIE WOLNO modyfikować (nadpisze sie przy wysylaniu)
//
//Prosze napisac program, ktory odpowiedni przydzieli pamiec oraz wykona
//operacje wynikajace z tego co znajduje sie na przykladowym wyjsciu.
//
//Prosze pamietac o odpowiednim deklarowaniu i definiowaniu funkcji
//
..
#include "lab_02.h"
#include "lab_02.h"
int main()
{
int size = rnd(5, 15); // funkcja losująca liczbe pseudolosowa z przedzialu [5, 15]
// kazde uruchomienie programu powoduje wylosowanie innej liczby
// prosze skorzystac z: rand, srand oraz time
PTR_TYPE ptr = alloc_mem(size); //przydzielenie pamięci
std::cout << "-----------------------------\n";
print_ptr(ptr, size); // wypisanie
std::cout << "\n-----------------------------\n";
ptr = realloc_mem(ptr, size); // skasowanie i ponowne zaalokowanie pamieci wraz z inna incjalizacja
print_ptr(ptr, size);
std::cout << "\n-----------------------------";
FUN_PTR_TYPE fun_ptr = suma;
std::cout << "\nSuma = " << fun_ptr(ptr, size);
std::cout << "\n-----------------------------";
fun_ptr = iloczyn;
std::cout << "\nIloczyn = " << fun_ptr(ptr, size) << std::endl;
dealloc_mem(ptr); // czyszczenie pamieci
}
/* Wyjście z programu wyglada nastepująco (PRZYKLADOWE dla wylosowanej warosci 10)
-----------------------------
[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
-----------------------------
[10], [9], [8], [7], [6], [5], [4], [3], [2], [1],
-----------------------------
Suma = 55
-----------------------------
Iloczyn = 3.6288e+06
*/
Moje pytanie brzmi: co takiego można by wstawić do pliku lab_02.h, żeby całość się skompilowała? Jest to w ogóle wykonalne? A może to błąd w zadaniu? (na zajęciach mieliśmy zastępstwo, w związku z czym na razie nie sposób było zapytać o to prowadzącego)
Byłbym bardzo wdzięczny za pomoc, pozdrawiam.