zamiana wierszy w tablicy dwuwymiarowej

0

Witajcie, mam pewien problem, mianowicie mam tablicę:

 int tab[3][3]={{1,2,3},{4,5,6},{7,8,9}};

i chcę zamienic miejscami wiersz 2 z 3.

Standard zabrania czegoś takiego:

 
 int *temp;
 temp=tab[0];
 tab[0]=tab[1];
 tab[1]=temp;

oczywiście zawsze można przepisywać wartości po komórce, ale jest może jakiś bardziej elegancki sposób z działaniem na wskaźnikach?

0
int tab[3][3]={{1,2,3},{4,5,6},{7,8,9}};
    swap(tab[0], tab[1]);

w czym problem?

0

w tym, że mi to nie działa!

0

Nie wierzę.

uwierzyłbym gdybyś podał chociaż jakim kompilatorem to kompilujesz i w jakim standardzie (a w tym wypadku jest to istotne) ale nie raczyłeś nawet tak podstawowych informacji podać. Nie wspomnę już o rozwinięciu stwierdzenia (baa wykrzyknienia!) "nie działa!". Co to znaczy, że nie działa? Nie kompiluje się? Jeśli tak to podaj błędy. Nie zamienia? Takim sposobem to możemy tutaj jeszcze miesiąc siedzieć i tak nie dojdziemy do porozumienia :]

0

DevCpp:

ISO C++ forbids assignment of arrays 
0
 
   int **tab2 = new int*[3];
   for(int n = 0, i = 0; i < 3; ++i)
   {
       tab2[i] = new int[3];
       for(int j = 0; j < 3; ++j)
          tab2[i][j] = ++n;
   }

   int *tmp = tab2[0];
   tab2[0] = tab2[2];
   tab2[2] = tmp;
   (...)

w twoim wypadku zrobić tak możesz jedynie na tablicy dynamicznej.

poza tym daruj sobie devc++ bo posiada stary kompilator, w ogóle cały jest stary i nierozwijany, i brzydki.

0

dzieki, pozniej sprawdze, zeby nie zakladac tematu, to zapytam jeszcze tutaj, jak zbiorczo zainicjalizowac tablice dynamiczna?

1 użytkowników online, w tym zalogowanych: 0, gości: 1