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

Segmentation fault - C++

Aruba Cloud - Virtual Private Server VPS
0 głosów
675 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ź 786 wizyt
pytanie zadane 16 grudnia 2019 w C i C++ przez kvlike Nowicjusz (170 p.)
+1 głos
1 odpowiedź 303 wizyt
pytanie zadane 17 lutego 2022 w C i C++ przez Yaqbek Nowicjusz (160 p.)
0 głosów
1 odpowiedź 210 wizyt
pytanie zadane 18 listopada 2018 w C i C++ przez Ptaszor3 Użytkownik (900 p.)

93,327 zapytań

142,323 odpowiedzi

322,396 komentarzy

62,657 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 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...