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

Wskaźniki i tablice C

Mały hosting, OGROMNE możliwości
0 głosów
533 wizyt
pytanie zadane 7 września 2022 w C i C++ przez benny13 Obywatel (1,150 p.)

Proszę o pomoc w zadaniu i wytłumaczenie, czemu takie rozwiązanie. Z góry bardzo dziękuję :)

Przy następujących deklaracjach:

int *p, **q;
int  (*a)[5];
int m1[2] [5];
int m2[2][3];

Które z poniższych instrukcji są poprawne?

p = m1[0];
p = &m2[1][2];
p = m1;
a = m1;
a = m2;
*q = m2[0];
q = m2;

 

1
komentarz 7 września 2022 przez j23 Mędrzec (195,220 p.)
Serio? Użyj kompilatora i będziesz wiedział, która linia jest błędna.
komentarz 7 września 2022 przez benny13 Obywatel (1,150 p.)
Sprawdzałem, które są błędne, natomiast nie wiem dlaczego, dlatego napisałem post, aby ktoś wytłumaczył :)

1 odpowiedź

+1 głos
odpowiedź 7 września 2022 przez j23 Mędrzec (195,220 p.)
    p = m1; // bo m1 jest typu int [2][5]
    a = m2; // bo m2 jest typu int [2][2]
    q = m2; // bo m2 jest typu int [2][2]

Typ tablicy dwuwymiarowej podlega - podobnie jak zwykła tablica - niejawnej konwersji do wskaźnika na pierwszy element, czyli np. int [2][5] → int (*)[5] Wyciągnij z tego wnioski.

komentarz 7 września 2022 przez benny13 Obywatel (1,150 p.)
Dzięki :)

Podobne pytania

0 głosów
1 odpowiedź 416 wizyt
pytanie zadane 1 grudnia 2022 w C i C++ przez Pysa6 Nowicjusz (220 p.)
0 głosów
0 odpowiedzi 861 wizyt
0 głosów
3 odpowiedzi 767 wizyt
pytanie zadane 3 grudnia 2017 w C i C++ przez MrSqoobany Początkujący (460 p.)

93,718 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,263 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...