我只是想知道是否将外部变量视为源缓冲区并将其作为参数传递给 strcpy() 或任何其他可能导致缓冲区溢出的函数是否与传递它一样不安全并且可能导致缓冲区溢出来自 fgets() 函数的参数,其指定限制高于缓冲区的大小。
应特别注意这些外部变量的使用,还是应将它们与任何其他变量区别对待?
最佳答案
extern
仅定义变量的链接,它不会以任何其他方式更改变量。
Whether it is safe?
它与任何其他变量一样安全/不安全,声明为 extern
的变量没有影响。
使用 strcpy
本身是不安全的,可能会导致缓冲区溢出。
在 C++ 中,更好的选择是使用 std::string
关于c++ - 当与可能导致缓冲区溢出的函数一起使用时,是否应该比其他变量更仔细地检查外部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12956810/