R.....y
R.....y
https://hastebin.com/zovuxelodi
dlaczego dla 10 razy większego N to się wywala? to N to ledwo 10^6, gdzie limit zwykłego inta to 2*10^9
#naukaprogramowania #cpp #programowanie
  • Najlepsze
  • Wszystkie komentarze
R.....y
R.....y
@Malkof: a to by wiele wyjaśniało, ja żadnej nie dałem
R.....y
R.....y
konto usunięte Autor
  • adult
0
Treść przeznaczona dla osób powyżej 18 roku życia...
zetisdead
dlaczego dla 10 razy większego N to się wywala?


@RedveKoronny: masz za mały stos? Sprawdź coredump, uruchom w debugerze.
R.....y
R.....y
@zetisdead: a no dobra, zapomniałem o ograniczeniu 4mb, czyli jakiś milion intów tak jak tu jest
MamCieNaHita
@RedveKoronny: a nie masz przy kompilacji warningu o VLA?
MamCieNaHita
@RedveKoronny: no i w konsoli powinien lecieć stack overflow
R.....y
R.....y
@MamCieNaHita: nope, tylko seg fault
R.....y
R.....y
@zetisdead: debugger w vimie, śmiechu warte ( ͡° ͜ʖ ͡°)
gdb co najwyżej, ale nie umiem tego używać
R.....y
R.....y
@zetisdead: faktycznie, problemem był rozmiar stosu
M.....f
M.....f
@RedveKoronny: A to ciekawe bo mi gcc pokazuje

warning: ISO C++ forbids variable length array 't2' [-Wvla]


a
R.....y
R.....y
@Malkof: używasz jakieś flagi pokroju -Wall, -Wextra?
M.....f
M.....f
@RedveKoronny: -Wpedantic
q.....n
q.....n
@RedveKoronny: Używaj kiedy to możliwe address/undefined sanitizer(komenda + to co wypisuje)

g++ main.cpp -fsanitize=address,undefined,leak;./a.out
R.....y
R.....y
@qarmin: zainteresowałeś mnie, podeslesz coś jeszcze o sanitizerze?
q.....n
q.....n
@RedveKoronny: Ja głównie używam sanitizera tylko z podstawowymi opcjami bo C++ nie jest moim głównym językiem w jakim programuje.
Teraz nie wyobrażam sobie tykać C/C++ bez sanitizera, bo pozwala to niemal natychmiast wykryć błędy, których podczas zwykłego używania programu nie znalazłbym nigdy
Te linki zawierają większość podstawowych informacji z jakich korzystam przy wybieraniu opcji.

https://clang.llvm.org/docs/AddressSanitizer.html
https://en.wikipedia.org/wiki/AddressSanitizer