Przekazywanie wskaźnika dynamicznego do funkcji

dział ogólny

Przekazywanie wskaźnika dynamicznego do funkcji

Nowy postprzez duf » czwartek, 10 września 2015, 10:59

Witam,
Chciałbym przekazać wskaźnik utworzony dynamicznie do funkcji żeby tam wykonał swoje zadanie. Zastanawiam się tylko gdzie mam go usunąć? Myślę, że już w głównej funkcji a nie w tej wywołanej ale nie jestem pewny. Czy przekazując wskaźnik do funkcji robię jego kopię i mam dwa wskaźniki do tego samego obiektu? Jeśli tak to powinienem usunąć dwa jeden w funkcji głównej i drugi w funkcji wywoływanej. Dziękuję

KOD cpp:     UKRYJ  
void Funkcja( TStrings* plik )
{
  ............
  delete plik; // ???
}

Void Main()
{
  TStrings* plik = new TStringList;
 
  Funkcja( plik );
 
 delete plik;
}
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    WindowsFirefox

Re: Przekazywanie wskaźnika dynamicznego do funkcji

Nowy postprzez polymorphism » czwartek, 10 września 2015, 15:52

Jeśli tak to powinienem usunąć dwa jeden w funkcji głównej i drugi w funkcji wywoływanej.

Jeśli masz dwa wskaźniki do tego samego obiektu, to dlaczego chcesz go usuwać dwa razy? delete nie służy do usuwania wskaźników, tylko do usuwania pamięci/obiektów, na które wskaźniki wskazują. Wywal delete z Funkcja i będzie dobrze.

W C++ powinno używać się inteligentnych wskaźników, wtedy problemy z własnością dynamicznie stworzonych obiektów znikną.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 58 gości

cron