Program kopiujący C-string z tablicy do innej tablicy.
Ostatnio zmodyfikowano 2016-09-25 22:58
mateczek |
» 2016-09-25 21:33:45 dalej źle! przepisujesz wskaźniki nie kopiujesz danych wyciek pamięci ! |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-09-25 21:44:02 Ale właśnie o przepisywanie mi chodziło. Chciałem się spytać, czy tok myślenia w komentarzach był poprawny. Miały wyjść 3 linijki tego samego "ala ma kota" |
|
mateczek |
» 2016-09-25 22:00:49 jeśli o taki efekt ci chodziło by jedną tablicę w kosmos wystrzelić to dobrze :P zjawisko takie nazywa się wyciekiem pamięci w tym przypadku objawia się tym, że zamiast dwóch tablic masz jedną tablicę do której odwołują się dwa wskaźniki. Do drugiej tablicy tracisz dostęp na wieki. https://pl.wikipedia.org/wiki/Wyciek_pami%C4%99ci #include <iostream> #include<cstring> using namespace std; int main() { char * imie1 = new char[ 20 ]; char * imie2 = new char[ 20 ]; imie1 = imie2; strcpy( imie1, "pawel" ); cout << imie1 << " " << imie2 << endl; strcpy( imie2, "monika" ); cout << imie1 << " " << imie2 << endl; delete[] imie1; delete[] imie2; }
|
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-09-25 22:58:02 znaczy oczywiście zdaję sobie sprawę, że tablica na którą wskazywał wskaźnik została utracona, bo nie można się do niej inaczej odwołac, niż poprzez wskaźnik, który teraz "ustawiliśmy" na inny adres. Przy tym przykładzie chodziło mi bardziej nie o samo działanie a tok rozumowania ujęty w komentarze. Dzięki za wytłumaczenie :D |
|
1 2 « 3 » |