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

New w funkcji.

Ostatnio zmodyfikowano 2018-03-11 18:48
Autor Wiadomość
Wuwus1
Temat założony przez niniejszego użytkownika
New w funkcji.
» 2018-03-11 18:14:44
Podczas pisania mojego zadania natrafiłem na problem związany z dynamicznym przydziałem pamięci. Mam tablicę abstrakcyjnych obiektów bazowych (pracownik). I używam funkcji, która pobiera typ pracownika i wskaźnik na jeden obiekt bazowy. 
void creator( const char type, abstr_emp * pcp );
. Funkcję wywołuję tak
creator( ch, pc[ count ] );
. Zauważyłem, że funkcja przypisuje nowy adres ale od razu po jej zakończeniu jest resetowany.
Przed wywolaniem funkcji:       CCCCCCCC
W funkcji:                      006058B0
Po wywolaniu funkcji:           CCCCCCCC
.
P-169930
YooSy
» 2018-03-11 18:25:53
» Kurs C++ / FAQNapisany program wysypuje się pytanie/odpowiedź
Adres: 0xCCCCCCCC Pamięć niezainicjalizowana na stosie.
Wskazuje te, że odczytujesz adres wskaźnika inicjaliwanego lokalnie i doczytujesz
jego adress przed inicjalizacją i po zwolnieniu adresu na stosie.
P-169931
pekfos
» 2018-03-11 18:33:03
Zauważyłem, że funkcja przypisuje nowy adres ale od razu po jej zakończeniu jest resetowany.
Nie jest resetowany, bo niczego nie przypisujesz. Modyfikujesz lokalną kopię wskaźnika.
P-169932
Wuwus1
Temat założony przez niniejszego użytkownika
» 2018-03-11 18:38:08
Jak więc przekazać "oryginał", a nie kopię wskaźnika na obiekt?
P-169933
pekfos
» 2018-03-11 18:39:40
P-169934
Wuwus1
Temat założony przez niniejszego użytkownika
» 2018-03-11 18:44:58
Już próbowałem ale dostaje błędy przy znaku '='. A jak próbuję wyłuskać to dostaje kolejny błąd.

C/C++
void creator( const char type, abstr_emp & pcp )
{
    switch( type )
    {
    case Employee:
        pcp = new employee;
        break;
        ...
P-169935
YooSy
» 2018-03-11 18:46:06
&*
P-169936
Wuwus1
Temat założony przez niniejszego użytkownika
» 2018-03-11 18:48:24
Ok działa. Dziękuję wszystkim za pomoc.
P-169937
« 1 »
  Strona 1 z 1