Funkcja otrzymująca jako argument referencję
Ostatnio zmodyfikowano 2015-10-02 15:49
Gokazi Temat założony przez niniejszego użytkownika |
Funkcja otrzymująca jako argument referencję » 2015-10-02 11:46:30 Cześć, czy moglibyście mi pomóc w utworzeniu funkcji:
"XXX" która otrzymuje jako argument referencję ref do zmiennej typu wskaźnik i dokonuje przypisania ref.wsk=wsk ??
Przy okazji powiedzcie czy dobrze zrobiłem tą funkcję:
"zwolnij" zwalnia obszar pamięci wskazywany przez pole wsk i nadaje temu polu wartość NULL.
void zwolnij() { free(wsk); wsk=NULL; }
Z góry dziękuję za pomoc. |
|
mateczek |
troszkę bez sensu!!! (przepraszam bo źle zrozumiałem!!!) » 2015-10-02 13:37:05 Oczywiści przekazywanie wskaźników przez referencję nie ma sensu. Ale jeśli chcesz go zmienić w funkcji jak słusznie zauważyła Lora to można to zrobić jak poniżej #include <iostream>
using namespace std; void func( int * & w, int & ref ) { w = & ref; } int main() { int liczba1 = 10, liczba2 = 20; int * wsk = & liczba1; cout <<* wsk << endl; func( wsk, liczba2 ); cout <<* wsk << endl; }
//ok Lora źle zrozumiałem!!! i poprawiłem przykład !!! |
|
Lora |
» 2015-10-02 13:42:22 On chyba chce w tej funkcji zmienić adres na jaki ten wskaźnik wskazuje. W takim przypadku przekazanie przez referencję ma sens. |
|
Gokazi Temat założony przez niniejszego użytkownika |
» 2015-10-02 15:26:01 Dzięki wielkie za pomoc, tak chodziło mi o to co napisała Lora:) Pomożecie jeszcze w 2 pytaniu?
|
|
carlosmay |
» 2015-10-02 15:29:30 W jaki sposób alokowana byłą pamięć?
|
|
Gokazi Temat założony przez niniejszego użytkownika |
» 2015-10-02 15:32:50 pola wsk? po prostu:
int *wsk; |
|
carlosmay |
» 2015-10-02 15:41:04 Z tym nic nie robisz. Jeśli alokujesz pamięć malloc() lub new to musisz ją zwolinić. np. int main() { int * wsk; wsk = new int; * wsk = 10; cout << * wsk << endl; delete wsk; wsk = NULL; _getch(); }
Edit: Jeśli chcesz żeby zwalnianiem zajmowała się funkcja musisz przekazać do niej wskaźnik, na pamięć którą chcesz zwolnić. |
|
carlosmay |
» 2015-10-02 15:49:11 |
|
« 1 » |