int main(void) { char four[4] = \"four\"; return 0; }
When compiled as a C++ program, G++ reports
xxx.cpp: In function int
The string "four" actually contains five bytes: the four letters plus a zero byte (\0) as a string terminator. It's been a while since I've written C or C++, but I would guess the C compiler is silently ignoring it for whatever reason.