W systemie Linux, używając C, załóżmy, że mam dynamicznie określony n
określający liczbę elementów, które muszę przechowywać w tablicy (int my_array[n]
) przez krótki czas, na przykład, jedno wywołanie funkcji, w którym wywoływana funkcja wykorzystuje tylko małą pamięć (kilkaset bajtów).Rozmiar pozostałego stosu do wystąpienia przepełnienia stosu
Przeważnie n
to niewiele, kilka dziesiątych. Ale czasami n
może być duży, aż 1000 lub 1 000 000 000.
Jak obliczyć, czy mój stos może pomieścić n*o + p
bajtów bez przepełnienia?
Zasadniczo: ile bajtów zostało na moim stosie?
możliwy duplikat [Sprawdzanie dostępnego rozmiaru stosu w C] (http://stackoverflow.com/questions/53827/checking-available-stack-size-in -c) –
@BrendanLong, Widziałem to pytanie, ale jak stwierdza: "Używam MinGW z GCC 3.4.5 (mingw-special vista r3)", odpowiedzi są nieco skoncentrowane na Windowsie. Moje pytanie brzmi: Linux/* nix wyśrodkowany. ;-) – kay
dlaczego nie możesz użyć 'getrusage()' i 'getrlimit()'? – sverre