Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

przekazywanie tablicy do funkcji

Ostatnio zmodyfikowano 2015-04-07 00:19
Autor Wiadomość
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 ).



C/C++
#include <iostream>
using namespace std;

int funkcja() {
    int tablica[ 5 ] = { 5, 4, 3, 2, 1 };
   
    return tablica;
   
   
   
   
}



int main() {
   
    cout << funkcja();
   
   
   
}
P-130258
Quirinnos
» 2015-04-06 15:30:42
np tak:

C/C++
#include <iostream>
using namespace std;

int * funkcja() {
    int tablica[ 5 ] = { 5, 4, 3, 2, 1 };
   
    return tablica;
   
}



int main() {
   
    int * x = funkcja();
   
}
P-130260
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
P-130261
Monika90
» 2015-04-06 15:35:08
C/C++
int * funkcja() {
    int tablica[ 5 ] = { 5, 4, 3, 2, 1 };
   
    return tablica;
}
na pewno nie tak, zachowanie jest niezdefiniowane
P-130262
Quirinnos
» 2015-04-06 15:36:10
C/C++
x[ 0 ]
x[ 1 ]
...

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.
P-130263
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.
P-130265
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.
P-130266
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.
P-130272
« 1 » 2
  Strona 1 z 2 Następna strona