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

Olimpiada Informatyczna Gimnazjalistów - "zerowanie tablicy"

0 głosów
492 wizyt
pytanie zadane 12 listopada 2018 w C i C++ przez niezalogowany
Witam,

Czy jest potrzeba "wyzerowania" tablicy? Czy jeżeli się tego nie zrobi na konkursie to może wartością domyślną dla jakiegoś pola tablicy być wartość inna niż 0?

1 odpowiedź

0 głosów
odpowiedź 12 listopada 2018 przez criss Mędrzec (172,570 p.)

Zależy gdzie została zadeklarowana. Niezainicjalizowane zmienne (mówię o primitive types) będące w obszarze pamięci dla zmiennych globalnych (tzn. po prostu globalne albo np. wewnątrz funkcji ale oznaczone jako static) będą wyzerowane. Ale zmienne lokalne już nie - dostaną takie wartości jakie wynikają z wartości bajtów na których zostały zaalokowane. Na szczęście wyzerowanie nie jest żadnym problemem. W C++ wystarczy, że dopiszesz puste nawiasy klamrowe:

int a[N] {};

(wartości elementów nie podane w nawiasach klamrowych zostają domyślnie przyjęte jako 0)

W C, o ile nic nie zmienili, nie możesz podać pustego nawiasu klamrowego (co najmniej 1 element), więc

int a[N] { 0 };
komentarz 12 listopada 2018 przez niezalogowany
A jak wyzerować dynamicznie alokowaną tablicę?
komentarz 12 listopada 2018 przez criss Mędrzec (172,570 p.)

memset

Możesz też tak (nawiasy na końcu):

int* a = new int[N] ();

(ale to się odnosi tylko do c++ ofc)

Podobne pytania

0 głosów
1 odpowiedź 803 wizyt
0 głosów
1 odpowiedź 293 wizyt
+1 głos
5 odpowiedzi 2,598 wizyt

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 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.

...