Mam takie zadanie:
Napisać funkcję typu void do wypisywania na ekran zawartości tablicy.
Nazwa tablicy i jej rozmiar powinny być podawane jako argumenty funkcji.
Co to znaczy że w parametrze ma się znaleźć nazwa tablicy ??
Mam takie zadanie:
Napisać funkcję typu void do wypisywania na ekran zawartości tablicy.
Nazwa tablicy i jej rozmiar powinny być podawane jako argumenty funkcji.
Co to znaczy że w parametrze ma się znaleźć nazwa tablicy ??
No… To, że chcesz przekazywać tej funkcji tablicę poprzez jej nazwę i długość…
Dla przypomnienia, nazwa tablicy jest też wskaźnikiem na jej pierwszy element. O to Ci chodziło? Bo, prawdę mówiąc, nie rozumiem, czego nie rozumiesz.
aaa czyli dobrze napisałem rozwiązanie ?
#include <iostream>
#include <cstdlib>
int* RandomTable(int len) {
int* tablica = new int[len];
srand(time(NULL));
for (int i = 0; i < len; i++)
{
tablica[i] = (rand() % 50) + 7;
}
return tablica;
}
void PrintTable(int* pArray, int len) {
for (int i = 0; i < len; i++)
{
std::cout << pArray[i] << std::endl;
}
}
int main()
{
int len = 0;
std::cout << "Podaj dlugosc tablicy: " << std::endl;
std::cin >> len;
int* pArr = RandomTable(len);
PrintTable(pArr, len);
}
Tak.
Pewnym czepialstwem, ale nie bezzasadnym, jest to, że długość tablicy lepiej by było jednak przekazywać jako inta bez znaku — w szczególności size_t
— ale zrobiłeś co trzeba i jest to rozwiązanie poprawne.
Dobrym zwyczajem jest używanie pary new / delete.
Gdyby ta para występowała w jednym bloku instrukcji, to byłoby fajnie.
Gdyby w c++ nie używać new / delete, to byłoby super.
rajszym napisał(a):
Gdyby w c++ nie używać new / delete, to byłoby super.
Smart pointers to rozwiązanie by nie używać new/delete.