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

Tablica na wskaźnikach. Wypełnianie danymi.

Ostatnio zmodyfikowano 2015-03-07 20:05
Autor Wiadomość
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:


C/C++
#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;
}
P-127900
Pokropow
» 2015-03-07 18:47:13
tak musisz cofnąć, a kod wydaje się prawidłowy
P-127901
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 ***
P-127902
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.
P-127903
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...
P-127905
Monika90
» 2015-03-07 19:04:34
delete[] należy wykonać na wskaźniku wskazującym na początek tablicy
P-127906
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.
C/C++
for( int j = 0; j < ile; j++ )
{
    cout << * tablica;
    tablica++;
}

pomysł z tablica+=2; nie pokazuje oczekiwanych efektów.
P-127909
Monika90
» 2015-03-07 19:28:49
Nie inkrementuj wskaźnika to nie będziesz musiał go cofać. Użyj operatora indeksowania
tablica[ j ]
P-127910
« 1 » 2
  Strona 1 z 2 Następna strona