przekazywanie tablicy do funkcji
Ostatnio zmodyfikowano 2015-04-07 00:19
mlOOdy Temat założony przez niniejszego użytkownika |
przekazywanie tablicy do funkcji » 2015-04-06 15:17:59 Cześć, Jak zwrócić tablicę z jednej do drugiej funkcji ? ( prosiłbym o odpowiedź na podstawie poniższego błędnego kodu ). #include <iostream> using namespace std;
int funkcja() { int tablica[ 5 ] = { 5, 4, 3, 2, 1 }; return tablica; }
int main() { cout << funkcja(); } |
|
Quirinnos |
» 2015-04-06 15:30:42 np tak: #include <iostream> using namespace std;
int * funkcja() { int tablica[ 5 ] = { 5, 4, 3, 2, 1 }; return tablica; }
int main() { int * x = funkcja(); }
|
|
mlOOdy Temat założony przez niniejszego użytkownika |
re » 2015-04-06 15:33:33 aha, a jak teraz wypisać elementy tej tablicy za pomocą funkcji main ? :D |
|
Monika90 |
» 2015-04-06 15:35:08 int * funkcja() { int tablica[ 5 ] = { 5, 4, 3, 2, 1 }; return tablica; }
|
na pewno nie tak, zachowanie jest niezdefiniowane |
|
Quirinnos |
» 2015-04-06 15:36:10 w zmiennej int * x; trzymasz wskaźnik na pierwszy element tablicy. Najlepiej jak byś też miał gdzieś rozmiar tej tablicy zapisany. @Monika90 Możesz coś więcej, byłem przekonany, że nie jest to jakieś wielkie nadużycie. |
|
Monika90 |
» 2015-04-06 15:44:15 Po wyjściu z funkcji tablica nie istnieje, zwrócony wskaźnik odnosi się do nieistniejącego obiektu. Taki wskaźnik jest nieważny, jest martwy, to jest eks-wskaźnik. |
|
Quirinnos |
» 2015-04-06 15:46:43 A no tak. Mój błąd. Jakoś cały czas miałem w głowie, że ta tablica jest w tej funkcji tylko inicjowana. Umysł jeszcze przyćmiony świętami :). Dziękuje za wytknięcie. |
|
mlOOdy Temat założony przez niniejszego użytkownika |
» 2015-04-06 16:30:44 Czyli jak w końcu napisać ? :D bo trochę się pogubiłem. |
|
« 1 » 2 |