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

Segmentation fault - C++

VPS Starter Arubacloud
0 głosów
541 wizyt
pytanie zadane 12 marca 2020 w C i C++ przez kvlike Nowicjusz (170 p.)
edycja 12 marca 2020 przez kvlike

Mam problem. Polega on na tym, że kiedy watrość zmiennej b jest zbyt duża, wyskakuje błąd exited, segmentation fault. Co ciekawe, błąd nie pojawia się przy liczbach mniejszych niż 259560 (debug) / 259564 (release). Watro dodać, że zmienna a jest zawsze mniejsza od b. Oto mój kod:

#include <iostream>
#include <algorithm>

using namespace std;

int oblicz_sume(int liczba)
    {
        int wynik=0;
        do
        {
            wynik=wynik+liczba%10;
            liczba=liczba/10;
        }while(liczba!=0);
    return wynik;
}
int main()
{
    int a, b;
    cin >> a >> b;
    int roz = b-a+1;
    int numer[roz];
    for(int i = a; i <= b; i++){
        numer[i-a] = i;
    }
    int suma[roz];
    string ctrl;
    for(int i = 0; i < roz; i++){
        suma [i] = oblicz_sume(numer[i]);
    }
    sort(suma, suma + roz);
    cout << suma[roz-1];
    return 0;
}

Proszę o szybką pomoc.

1 odpowiedź

+2 głosów
odpowiedź 12 marca 2020 przez RafalS VIP (122,820 p.)
    cin >> a >> b;
    int roz = b-a+1;
    int numer[roz];

Undefined behaviour. Temat przewija się na forum wielokrotnie. Użyj vectora lub tablicy alokowanej dynamicznie:

    cin >> a >> b;
    int roz = b-a+1;
    int *numer = new int[roz];

 

Podobne pytania

0 głosów
1 odpowiedź 585 wizyt
pytanie zadane 16 grudnia 2019 w C i C++ przez kvlike Nowicjusz (170 p.)
+1 głos
1 odpowiedź 220 wizyt
pytanie zadane 17 lutego 2022 w C i C++ przez Yaqbek Nowicjusz (160 p.)
0 głosów
1 odpowiedź 159 wizyt
pytanie zadane 18 listopada 2018 w C i C++ przez Ptaszor3 Użytkownik (900 p.)

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...