• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem ze wskaźnikami [C++]

Object Storage Arubacloud
0 głosów
126 wizyt
pytanie zadane 26 lutego 2017 w C i C++ przez Mikusbombro Użytkownik (990 p.)

Co dopiero przerobiłem odcinek o wskaźnikach. Nie mogę jednak cały czas tego ogarnąć. Postanowiłem zrobić sobie ćwiczenie i napisać program, używając wskaźników rzecz jasna, podobny do tego z odcinka.

#include <iostream>

using namespace std;

int ile_liczb, o_ile, liczba=0;

int main()
{

    cout<<"Ile liczb w tablicy: ";
    cin>>ile_liczb;

    cout<<endl<<"O ile zwiekszac liczby: ";
    cin>>o_ile;

    int *tablica;
    tablica = new int [ile_liczb];

    tablica[0]=0;

    for (int i=0; i<ile_liczb; i++)
    {
        cout<<*tablica<<endl;
        tablica[i]=liczba;
        liczba=liczba+o_ile;
        tablica++;
    }

    delete [] tablica;

    return 0;
}

Wszystko fajnie, program się uruchamia, tylko jeśli wpiszemy jakieś wartości, to zamiast zwiększających się liczb, pokazują się adresy... no sam nie wiem do końca jak to nazwać:

Z góry dzięki za odpowiedzi, prosiłbym również o krótkie wyjaśnienie.

1 odpowiedź

0 głosów
odpowiedź 26 lutego 2017 przez Szahid Pasjonat (20,930 p.)
wybrane 26 lutego 2017 przez Mikusbombro
 
Najlepsza

Trochę przekombinowałeś :) Zapis w lini 23 jest niepoprawny. Skoro robisz pętle for to możesz dostawać się do poszczególnych elementów tablicy tak jak pokazże Ci na poprawionym kodzie 

#include <iostream>

using namespace std;

int ile_liczb, o_ile, liczba=0;

int main()
{

    cout<<"Ile liczb w tablicy: ";
    cin>>ile_liczb;

    cout<<endl<<"O ile zwiekszac liczby: ";
    cin>>o_ile;

    int *tablica;
    tablica = new int [ile_liczb];

    tablica[0]=0;

    for (int i=1; i<ile_liczb; i++)
    {

        tablica[i]=tablica[i-1]+o_ile;

        cout<<tablica[i]<<endl;
    }

    delete [] tablica;

    return 0;
}

 

1
komentarz 26 lutego 2017 przez Szahid Pasjonat (20,930 p.)
Dodam jeszcze ( odnośnie tego zapisu w lini 23 ) że taki numer by przeszedł jakbyś miał zapisany jakiś ciąg znaków w tablicy charów. Wtedy wyświetliłyby się wszystkie elementy tablicy aż do momentu napotkania znaku '\0' który oznacza koniec ciógu. Dla innych wartości aby wyświetlić wszystkie elementy musisz użyć pętli i wyświetlać każdy adres z osobna.

Podobne pytania

0 głosów
1 odpowiedź 93 wizyt
pytanie zadane 4 maja 2020 w C i C++ przez Quba Użytkownik (870 p.)
0 głosów
1 odpowiedź 237 wizyt
pytanie zadane 18 sierpnia 2016 w C i C++ przez acab999 Początkujący (340 p.)
0 głosów
0 odpowiedzi 326 wizyt
pytanie zadane 20 stycznia 2022 w C i C++ przez wyntia Nowicjusz (120 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...