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

matura inf. pytanie informacyjne

42 Warsaw Coding Academy
0 głosów
285 wizyt
pytanie zadane 1 czerwca 2022 w C i C++ przez polandonion Dyskutant (7,630 p.)
otagowane ponownie 1 czerwca 2022 przez polandonion
Witam, szybkie pytanie, czy na maturze piszac w c++ moge zarezerwowac tablice int z 320 000 000 000 elementami, czy to za duzo? pytam, bo na internecie nie moglem znalezc odp. jak tak to zamykam dyskusje, jak nie to prosilbym o napisanie najwiekszej liczby elementow jaka mozna zarezerwowac w tablicy typu int.
komentarz 1 czerwca 2022 przez Whiskey_Taster Pasjonat (15,610 p.)
Z ciekawości, w jakim celu potrzebna Ci tak gigantyczna tablica, w dodatku na maturze?
komentarz 2 czerwca 2022 przez Oscar Nałogowiec (29,360 p.)

Nawet bez związku z maturą, napisałem na próbe programik:

#include <stdio.h>

static int tab0[320000000000];

int main(int argc, char * argv[])
{
    printf("Wielkosc %lu, element 1st %d, ze srodka %d\n", sizeof(tab0), tab0[0], tab0[3199999]);
}

Program się skompilował, ale próba uruchomienia daje następujący rezultat:

$ strace ./tab 
execve("./tab", ["./tab"], 0x7ffd55f008e0 /* 52 vars */) = -1 ENOMEM (Nie można przydzielić pamięci)
+++ killed by SIGSEGV +++
Naruszenie ochrony pamięci (zrzut pamięci)
$

Jak widać sam system odmówił uruchomienia programu (Ubuntu 64bit, 16GB RAM - więc fizycznie się mieści). Być może pomogłyby jakieś opcje kompilacji lub ustawienia systemu.

Oczywiście taka tablica na stosie na pewno nie przejdzie. Jeszcze zostaje dynamiczna allkokacja.

 

komentarz 2 czerwca 2022 przez polandonion Dyskutant (7,630 p.)

@Whiskey_Taster, chcialbym sprobowac jeden z algorytmow i w dev cpp mi dziala ale za to nw jak to jest z kompilatorem na maturze

komentarz 2 czerwca 2022 przez polandonion Dyskutant (7,630 p.)
ok, dzieki
1
komentarz 2 czerwca 2022 przez j23 Mędrzec (195,240 p.)

@polandonion, 

czy to za duzo?

Za dużo. Taka ogromna tablica to na 100% błąd w podejściu do rozwiązania zadania.

komentarz 2 czerwca 2022 przez SimiVoid Pasjonat (19,790 p.)

@polandonion, Jaka była treść zadania?

 

komentarz 2 czerwca 2022 przez adrian17 Mentor (353,640 p.)

16GB RAM - więc fizycznie się mieści

huh.

Oczywiście taka tablica na stosie na pewno nie przejdzie. Jeszcze zostaje dynamiczna allkokacja.

Powinieneś się cofnąć dziesięć kroków wcześniej i zastanowić co w ogóle oznacza liczba 320000000000. Toż to jest ponad 1000GB :) Nie trzeba myśleć w ogóle o C++ie czy alokacjach, tylko o fakcie że nieważne jak byś próbował to nijak to Ci się to w pamięci nie zmieści. Więc popieram powyższe:

Taka ogromna tablica to na 100% błąd w podejściu do rozwiązania zadania.

komentarz 2 czerwca 2022 przez polandonion Dyskutant (7,630 p.)

@SimiVoid, zadanie 4.3 (trojki i piatki) z informatyki z tego roku, ale juz zrobilem innym sposobem

komentarz 2 czerwca 2022 przez adrian17 Mentor (353,640 p.)
Hmm, nie widzę tam niczego co by potrzebowało tablicy, a już w ogóle związku z liczbą "320 000 000 000".

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 23 czerwca 2022 w Rozwój zawodowy, nauka, praca przez polandonion Dyskutant (7,630 p.)
0 głosów
1 odpowiedź 1,024 wizyt
0 głosów
0 odpowiedzi 535 wizyt
pytanie zadane 5 listopada 2017 w Rozwój zawodowy, nauka, praca przez Faelyn Nowicjusz (140 p.)

93,398 zapytań

142,390 odpowiedzi

322,578 komentarzy

62,756 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...