如何在C++中使用数组导致安全问题

seg*_*ult 2 c++ security

有人告诉我,在C++中编程的最佳方法是使用STL和字符串而不是数组和字符数组.

vector<int> myInt;
Run Code Online (Sandbox Code Playgroud)

而不是

int myInt[20]
Run Code Online (Sandbox Code Playgroud)

但是,我不明白为什么它会导致安全问题.

unw*_*ind 9

我建议你阅读缓冲区溢出,然后.当使用原始数组时,程序员更有可能创建或冒险缓冲区溢出,因为它们为您提供较少的保护并且不提供API.当然,使用STL也可以用脚射击自己,但至少它更难.