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

Jak pracować na kopiach tablic w funkcji?

Ostatnio zmodyfikowano 2014-02-02 21:24
Autor Wiadomość
kitsss
Temat założony przez niniejszego użytkownika
Jak pracować na kopiach tablic w funkcji?
» 2014-01-28 16:03:11
Chciałem przesłać jako argument do funkcji tablice. Jednak chciałbym, by nie były one oryginałami (bo jak przesyłamy całą tablice, to pracujemy na jej adresach, bo nazwa tablicy to adres do jej 0-owego elementu). Próbowałem odebrać ją w ciele funkcji jako wskaźnik: const int *w, co by zapobiegło zmianie wartości, ale siłą rzeczy zapobiegło również chwilowej zmianie wewnątrz funkcji, na której mi zależy.

Z góy dzięki za pomoc, pozdrawiam.
P-103422
killjoy
» 2014-01-28 16:04:38
Zrób sobie kopię tablicy w funkcji, w czym problem?
P-103423
kitsss
Temat założony przez niniejszego użytkownika
» 2014-01-31 08:03:44
Masz racje, to pomoże. Uczę się języka od podstaw i jeszcze daleko nie zaszedłem, myślałem, że są może na to jakieś specjalne sztuczki. Już wiem, że ich nie ma, dzięki wielkie ;)
P-103669
alixir
» 2014-01-31 08:20:40
Zawsze możesz też opakować tablicę w strukturę. Wtedy możesz presłać ją jak inne zmienne.
Popatrz na przykład:

C/C++
#include <iostream>

struct sTablica {
    int element[ 5 ];
};

void funkcja( sTablica t ) {
    // operujemy na kopii tablicy
    for( int i = 1; i < 5; i++ )
         t.element[ i ] += t.element[ i - 1 ];
   
    // wyswietlamy zmieniona kopie tablicy
    for( int i = 0; i < 5; i++ )
         std::cout << t.element[ i ] << std::endl;
   
}

int main() {
   
    sTablica tab;
   
    // wypelniamy tablice danymi
    for( int i = 0; i < 5; i++ )
         tab.element[ i ] = i;
   
    funkcja( tab );
   
    // wyswietlamy tablice
    for( int i = 0; i < 5; i++ )
         std::cout << std::endl << tab.element[ i ];
   
    return 0;
}
P-103671
kitsss
Temat założony przez niniejszego użytkownika
» 2014-02-02 21:24:12
Do struktur, obiektowego programowania jeszcze nie doszedłem, na razie staram się zrozumieć w pełni(wraz z dużą ilością praktyki) wszystko do tego momentu. Ale niebawem się już do tego zabieram i wrócę tu by spojrzeć, dzięki wielkie za odpowiedź, zamykam.
P-103898
« 1 »
  Strona 1 z 1