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

Zadanie z C - wskaźniki

Object Storage Arubacloud
0 głosów
367 wizyt
pytanie zadane 30 listopada 2022 w C i C++ przez Pysa6 Nowicjusz (220 p.)

Czesc, mam problem z zadaniem domowym, oto treść:

[ Zadeklaruj zmienną X typu int.

Zadeklaruj zmienne wskaźnikowe typu int: a, b, c, d, e. Przypisz im kolejno (wzajemne) adresy.

Ustaw wartość dla zmiennej wskaźnikowej a.
Wyświetl wartość zmiennej X.

(Jeśli wszystko się udało, to te wartości będą takie same). ]

Dopiero zaczęłam uczyć się programowania, a wskaźniki to całkowicie czarna magia, więc proszę o wyrozumiałość i pomoc :)) Oto kod:

#include <stdio.h>

int main()
{
    
    int x;
    int *a;
    int *b;
    int *c;
    int *d;
    int *e;
    
   
    &x = e;
    e = d;
    d = c;
    c = b;
    b = a;
    *a = 10;
    printf("%d", x);
    
    return 0;
}

1 odpowiedź

+1 głos
odpowiedź 30 listopada 2022 przez adrian17 Ekspert (344,860 p.)

Problem nie był ze wskaźnikami, tylko z tym że pomyliłaś strony przypisania :)

    &x = e;
    e = d;
    d = c;
    c = b;
    b = a;

Jeśli wskaźnik "e" ma mieć adres na zmienną "x", to przypisanie wygląda:

e = &x;

Jak resztę z tych co pokazałem analogicznie odwrócisz to będzie dobrze.

komentarz 30 listopada 2022 przez Pysa6 Nowicjusz (220 p.)

nadal mi nie wychodzi ;( jest jeszcze załącznik, dokładnie tak jest napisane:  

Zadeklaruj zmienną X typu int. Zadeklaruj zmienne wskaźnikowe typu int: a, b, c, d, e. Przypisz im kolejno (wzajemne) adresy jak poniżej:

page2image42157072

komentarz 30 listopada 2022 przez adrian17 Ekspert (344,860 p.)
Jakby co, załącznik się nie dodał. Możesz wrzucić nowy kod i błąd tekstem albo linkiem do obrazka gdzieś indziej?
komentarz 30 listopada 2022 przez Pysa6 Nowicjusz (220 p.)
mogę wysłać na maila?
komentarz 30 listopada 2022 przez adrian17 Ekspert (344,860 p.)
Nie, wrzuć po prostu tekst tutaj ;D
komentarz 30 listopada 2022 przez Pysa6 Nowicjusz (220 p.)

#include <stdio.h>

int main()
{
    
    int x;
    int *a;
    int *b;
    int *c;
    int *d;
    int *e;
    
   
    b = a;
    c = b;
    d = c;
    e = d;
    &x = e;
    *a = 5;
    printf("%d\n", x);
    
    return 0;
}

obrazka nie da się wrzucić :/

komentarz 1 grudnia 2022 przez Oscar Nałogowiec (29,320 p.)

Trzeba pilnować kolejności przypisywania. Do kolejnej zmiennej możesz jedynie podstawić zawartość zmiennej, której  uprzednio podstawiono coś sensownego. Praktycznie jedynie co możesz podstawić na początku pod wskaźniki to wskazanie na zmienną x. W tym pierwszym przykładzie praktycznie pomyliłaś kierunki przypisania we wszystkich intrukcjach.

Zamiast:

&x = e;
e = d;
d = c;
c = b;
b = a;

Trzeba odwrotnie:

e = &x;      ///< wskaźnik e jest ustawiony na konkretną zmienną
d = e;        ///< teraz można to podstawić też do d
c = d;        ///< d gotowe, kopiujemy do c
b = c;        ///< teraz z c do b
a = b;        ///<  i na koniec do a

Można to też krócej:

a = b = c = d = e = &x;

 

komentarz 1 grudnia 2022 przez Pysa6 Nowicjusz (220 p.)
w końcu działa, dziękuję!

Podobne pytania

0 głosów
1 odpowiedź 272 wizyt
pytanie zadane 14 listopada 2019 w C i C++ przez juske00 Początkujący (370 p.)
0 głosów
3 odpowiedzi 502 wizyt
pytanie zadane 12 grudnia 2018 w C i C++ przez Padoski Użytkownik (990 p.)
+1 głos
1 odpowiedź 263 wizyt
pytanie zadane 7 maja 2023 w C i C++ przez kwkstein Nowicjusz (150 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 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!

...