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

Rozmiar tablicy

Object Storage Arubacloud
0 głosów
91 wizyt
pytanie zadane 31 stycznia 2023 w C i C++ przez Marcinuq Użytkownik (640 p.)
edycja 31 stycznia 2023 przez Marcinuq
Witam, robiłem sobie zadanie z C++ i wpadłem na taki problem, że nie wiem czemu rozmiar przekazywanej tablicy do funkcji jest inny niż ten w main i zawsze równy 8. Jak to zmienić, żeby był ten sam. Chodzi o sizeof(tab) - uznajmy, w funkcji main() piszę cout<<sizeof(tab) i on jest równy 20, a jak napiszę cout<<sizeof(tab) w funkcji np. funkcja(tab) do której przekazałem tą tablice "tab" to wypisuje 8. Proszę o pomoc.

1 odpowiedź

+2 głosów
odpowiedź 31 stycznia 2023 przez adrian17 Ekspert (344,860 p.)
wybrane 31 stycznia 2023 przez Marcinuq
 
Najlepsza

Bo

int tab[20];
cout << sizeof(tab); // sizeof daje rozmiar zmiennej typu int[20], wiec rozmiar jest 20*sizeof(int)
cout << std::size(tab); // 20 bo zmienna typu int[20] ma z definicji 20 elementow

ale

int *tab = /*cokolwiek*/;
cout << sizeof(tab); // sizeof(int*) == 8 na systemach 64-bitowych
cout << std::size(tab); // nie skompiluje się bo nie można poznać rozmiaru tablicy na jaką wskazuje wskaźnik

Jeśli rozmiar jest zawsze stały, zrób stałą przechowującą rozmiar.

Jeśli rozmiar nie jest stały, to przekazuj go jako argument razem z tablicą.

Staraj się nie używać sizeof().

komentarz 31 stycznia 2023 przez Marcinuq Użytkownik (640 p.)

Dzięki laugh, wtedy w zadaniu przekazałem rozmiar jako argument, ale chciałem wiedzieć czy się nie da z tym sizeof'em jakoś. 

Podobne pytania

+1 głos
2 odpowiedzi 243 wizyt
pytanie zadane 30 stycznia 2019 w C i C++ przez Dawid Markiewicz Obywatel (1,590 p.)
0 głosów
1 odpowiedź 110 wizyt
pytanie zadane 12 grudnia 2018 w C i C++ przez four Użytkownik (720 p.)
0 głosów
3 odpowiedzi 2,037 wizyt

92,579 zapytań

141,429 odpowiedzi

319,656 komentarzy

61,962 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!

...