[C++] Korzystanie z dynamicznej tablicy dwuwymiarowej bez użycia indeksów
Ostatnio zmodyfikowano 2014-11-16 00:00
Kopczak1995 Temat założony przez niniejszego użytkownika |
[C++] Korzystanie z dynamicznej tablicy dwuwymiarowej bez użycia indeksów » 2014-11-15 16:42:24 Witam. Pomagałem dzisiaj koleżance z roku w jednym "drobiazgu" z C++. Trafiła na jakąś chorą Profesor na laborkach, która zadała im tworzyć i potem używać dynamicznych tablic dwuwymiarowych wyłącznie z użyciem zmiennych wskaźnikowych, bez indeksów typowych dla tablic. O tyle wiem jak to zrobić w przypadku tablicy jednowymiarowej to już nie mogę sobie wyobrazić jak to zmajstrować przy wielowymiarowych wersjach... Tak by było (o ile dobrze kojarzę z wykładów) odnoszenie się do kolejnych elementów przy jednowymiarowej tablicy: for( int i = 0; i < rozmiarTablicy; i++ ) { ( * + i ) tablica = rand(); cout <<( * + i ) tablica << endl; }
Oświeciłby mnie ktoś jak to działa w przypadku tablic 2 i więcej - wymiarowych? Byłbym wdzięczny :) @Edit Primo - mój kod był błędny :D Secundo - już wiem jak to zrobić, dorwałem się do kopii prezentacji z naszego wykładu i się temu zagadnieniu przyjrzałem na spokojnie :P Dla potomnych - odnoszenie się do określonego elementu tablicy 2-wymiarowej wygląda tak: cout << *( j + *( i + tablica ) ); gdzie i oraz j są odpowiednio indeksami [ i ][ j ] naszej tablicy. |
|
GolemXIV |
» 2014-11-15 17:34:09 Dlaczego chorą???
W opisach C wyraźnie jest napisane, że arytmetyka wskaźników jest ściśle powiązana z tablicami. Dodawanie liczby do wskaźnika, , odejmowanie wskaźników - są równoważne operacjom na indeksach tablicy. I kompilator sam dba o to, żeby (na poziomie reprezentacji) wskaźnik zwiększać, zmniejszać o odpowiednią wielkość, zależnie od tego, jak duże są pojedyncze elementy tablicy. To jest naprawdę tożsamość.
Tablice wielowymiarowe: z zapisu x[j] wyraźnie wynika, jak taka tablica jest zorganizowana.
|
|
Kopczak1995 Temat założony przez niniejszego użytkownika |
» 2014-11-16 00:00:26 Akurat ta babka faktycznie jest chora, niezależnie od przykładu, który podałem :P Ale nie ma co wdrażać w szczegóły, bo to bez sensu :P A to o czym mówisz to jak najbardziej prawda, wiem że tablice to praktycznie wskaźniki. |
|
« 1 » |