Oto kod (obowiązuje C i C++)Czy istnieje gwarancja automatycznego wypłukiwania przed wyjściem? Jak to działa?
#include <stdio.h>
int main() {
printf("asfd");
// LINE 1
return 0;
}
Jeśli w wierszu 1 kładę segfaulting wyraz program będzie tylko katastrofy bez drukowania niczego (zgodnie z oczekiwaniami).
Ale dlaczego powyższy kod drukuje "asdf", a nie wychodzi bez opróżniania bufora? Co kryje się pod maską i dlaczego działa zgodnie z oczekiwaniami?
Nie używaj printf w C++! –
Uwaga: to pytanie jest podwójne, ale odpowiedź jest inna w C niż w C++. Odpowiedź Raymonda Chena obejmuje C++. @JensGustedt odpowiedzi obejmuje C (ale został usunięty ...) –