3 ms·
Oh my bad! That must be why C++, a definitely not super unsafe language that is basically totally different from C, lets you do this: char buf[10]; std
by nneonneo 4y ago
Oh my bad! That must be why C++, a definitely not super unsafe language that is basically totally different from C, lets you do this:
char buf[10];
std::cin >> buf;
std::cout << buf << std::endl;
g++ -Wall -std=c++2a (sorry, I’ve only got GCC 9), no warnings or errors, happily overruns the stack when fed more than 10 characters. This code is essentially equivalent to the C gets(buf) (splitting on whitespace instead of newline), but gets is deprecated and generates big warnings on most modern C compilers. Yet, operator>>(char *) does not.
Sure, you can write secure code in C++. You can write secure code in C too, even if that language is “super unsafe”. But neither language will stop you from writing insecure code either.