Tablica na wskaźnikach. Wypełnianie danymi.
Ostatnio zmodyfikowano 2015-03-07 20:05
grun1 Temat założony przez niniejszego użytkownika |
Tablica na wskaźnikach. Wypełnianie danymi. » 2015-03-07 18:42:24 Polecenie: Wypełnić danymi jednowymiarową tablicę liczb całkowitych korzystając ze wskaźników. Oraz wyświetlić jej elementy Pytanie: Czy muszę przy wyświetlaniu tablicy wskaźnikiem cofnąć go do zerowego elementu? Oraz czy poniższy kod jest prawidłowy: #include <iostream> #include <time.h> #include <cstdlib> using namespace std;
int main() { int ile; cout << "ile liczb:"; cin >> ile; srand( time( NULL ) ); int * tablica; tablica = new int[ ile ]; for( int j = 0; j < ile; j++ ) { * tablica = 1 + rand() %( 100 - 1 + 1 ); cout << * tablica; tablica++; } cout << endl; tablica = tablica - ile; for( int j = 0; j < ile; j++ ) { cout << * tablica; tablica++; } delete[] tablica; return 0; }
|
|
Pokropow |
» 2015-03-07 18:47:13 tak musisz cofnąć, a kod wydaje się prawidłowy |
|
grun1 Temat założony przez niniejszego użytkownika |
» 2015-03-07 18:52:34 Miłe zaskoczenie ;-)
Ok... ( pisze pod gcc linux) I pokazuje mi liczby tyle że dopisuje błąd: *** Error in `/home/***/Dokumenty/Studia/Labolatorium2/zadanie2/bin/Debug/zadanie2': munmap_chunk(): invalid pointer: 0x0000000001081020 ***
|
|
Monika90 |
» 2015-03-07 18:59:57 Kod wklejaj na forum w znacznikach [cpp][/cpp]. Ten kod jest błędny i nawet domyślam się skąd pochodzi.
|
|
grun1 Temat założony przez niniejszego użytkownika |
» 2015-03-07 19:03:02 Hehe... Kod pisałem samemu ;) więc nie ma możliwości aby skądś pochodził. Moje pytanie brzmi co jest źle... |
|
Monika90 |
» 2015-03-07 19:04:34 delete[] należy wykonać na wskaźniku wskazującym na początek tablicy |
|
grun1 Temat założony przez niniejszego użytkownika |
» 2015-03-07 19:22:28 Faktycznie. Czyli mam rozumieć że za każdym razem mam wskaźnik cofać? i jeszcze jedno pytanie :) chciałbym wyświetlać jej co 2 element. for( int j = 0; j < ile; j++ ) { cout << * tablica; tablica++; }
pomysł z tablica+=2; nie pokazuje oczekiwanych efektów. |
|
Monika90 |
» 2015-03-07 19:28:49 Nie inkrementuj wskaźnika to nie będziesz musiał go cofać. Użyj operatora indeksowania tablica[ j ] |
|
« 1 » 2 |