Here is the code (valid C and C++)
#include <stdio.h>
int main() {
printf("asfd");
// LINE 1
return 0;
}
If in line 1 I put segfaulting expression the program would just crash without printing anything (as expected).
But why is the above code printing "asdf" and not exiting without buffer being flushed? What is under the hood and why does it work as expected?
This is accomplished by these two sections in the C++ language specification:
and