Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Szybka zamiana wartości tablicy na inny zestaw danych

tsare 11 Maj 2011 13:31 779 2
  • #1 11 Maj 2011 13:31
    tsare
    Poziom 13  

    Mam tablicę globalną int dane[]={1,1,1,1,1,1,1,1};
    Później w programie chciałbym szybko zamienić wartości tablicy na inne w ten sposób:

    Code:
    void zmien_dane(int cyfra)
    
    {
     switch(cyfra)
       {
          case 0:  dane[]={1,1,0,0,0,0,0,0}; break;
          case 1:  dane[]={1,1,1,1,1,0,0,1}; break;
          case 2: ...
           .
           .
           .
          case 9:  dane[]={1,0,0,1,0,0,0,0}; break;
       }

    ale kompilator oczywiście tego nie rozumie... jak to najszybciej zrobić?
    bo przypisywanie dane[0]=1,dane[1]=1 ... nie wchodzi w grę

    0 2
  • Pomocny post
    #2 11 Maj 2011 14:56
    directx11
    Poziom 17  

    Zadeklaruj "dane" jako "int*" i możesz mu przypisać adres dowolnej innej tablicy, podmianka to tylko przypisanie nazwy innej tablicy.

    0
  • #3 11 Maj 2011 20:09
    tsare
    Poziom 13  

    rzeczywiście... nie myślałem o wskaźnikach
    mniej więcej tak to teraz wygląda:

    Code:
       int * dane;
    
       int domyslna[]={1,1,1,1,1,1,1,1};
       int c0[]={1,1,0,0,0,0,0,0};
       int c1[]={1,1,1,1,1,0,0,1};
       int c2[]={1,0,1,0,0,1,0,0};
       ...
       int c9[]={1,0,0,1,0,0,0,0};

    void zmien_dane(int cyfra)
    {
     switch(cyfra)
       {
          case 0: dane=c0; break;
          case 1: dane=c1; break;
          ...
          default: dane=domyslna;
       }
    }

    Do wskaźnika mogę odwoływać się teraz jak do normalnej tablicy. Dzięki!

    0