Article View: pl.comp.os.linux.programowanie
Article #60479Re: [c++] kopiowanie tablic
From: M(dot)Kedzierawski
Date: Tue, 15 Nov 2005 19:26
Date: Tue, 15 Nov 2005 19:26
41 lines
2766 bytes
2766 bytes
> I teraz chciałbym przekopiować całą zawartość tablicy a do b. Nie chcę > jednak korzystać z pętli (musiałbym zastosować kilkadziesiąt pętli). > Nie dałoby się tego jakoś zrobić przy pomocy wskaźników? Rozmiary są te > same, więc de facto chodzi jedynie o zamianę adresu tablicy b na tablicę > a (tablica a już nie będzie mi potrzebna). Troche się chyba zakręciłeś, bo jak chcesz, żeby b wskazywało na a, to to a jak najbardziej będzie ci potrzebne (to tablica wskazywana przez b nie będzie już potrzebna jak już). Pomijająć powyższe: Jeżeli masz te tablice na stercie, a nie stosie, to tak właśnie możesz zrobić: delete [] b; //jeżeli już wogóle nie będzie potrzebna w programie b = a; Jeżeli masz na stosie, to nie da rady - bez pętli się nie obędzie. Jeżeli nie przechowujesz tam jakichś struktur danych ze wskaźnikami, to możesz skorzystać z memcpy (wewnątrz jej jednak jest pętla). Ew. w zależności od tego, jak w całości wygląda twój program, możesz mieć te tablice i na stosie, ale operować na nich za pomocą wskaźników zadeklarowanych "dodatkowo" i wskazujących na pierwszy element takiej tablicy. Wtedy też możesz sobie zrobić jak powyżej, ale tablicy 'a' nie możesz sobie ot tak zwolnić, tylko zostanie ona zwolniona, przy wyjściu z funkjci, w której ją zadeklarowano jako lokalną. A, no i dochodzi problem, jeżeli w innych miejscach programu porobiłeś sobie kopie wskaźnika na b. Po zwolnieniu b i wpisaniu tam a, albo z tamych kopii nie należy korzystać, albo trzeba je (jakoś) uaktualnić. uff, to tyle :) -- Mariusz Kędzierawski +---------------------------------------------------------+ Z całym światem (w końcu) MOŻESZ wygrać. Z sobą (ostatecznie) ZAWSZE przegrasz. +---------------------------------------------------------+
Technical Details
Message-ID:
<dldcnr$ebu$1@julia.coi.pw.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!uw.edu.pl!news.pw.edu.pl!not-for-mailReferences:
<rhwhdadohut.fsf@jj.jj>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!uw.edu.pl!news.pw.edu.pl!not-for-mail From: "M(dot)Kedzierawski"@elka.pw.edu.pl Newsgroups: pl.comp.os.linux.programowanie Subject: Re: [c++] kopiowanie tablic Date: Tue, 15 Nov 2005 20:26:07 +0100 Organization: Warsaw University of Technology Lines: 41 Message-ID: <dldcnr$ebu$1@julia.coi.pw.edu.pl> References: <rhwhdadohut.fsf@jj.jj> NNTP-Posting-Host: helios.riviera.pw.edu.pl Mime-Version: 1.0 X-Trace: julia.coi.pw.edu.pl 1132082747 14718 10.1.102.56 (15 Nov 2005 19:25:47 GMT) X-Complaints-To: usenet@pw.edu.pl NNTP-Posting-Date: Tue, 15 Nov 2005 19:25:47 +0000 (UTC) In-Reply-To: <rhwhdadohut.fsf@jj.jj> X-Accept-Language: en-us, en User-Agent: Mozilla Thunderbird 1.0 (X11/20050319) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit