使用 getenv 检索不存在的环境变量时出现访问冲突异常
我正在使用 MS Visual Studio 2008 开发 C++ 应用程序。我使用“getenv()”函数来获取环境变量,但是当搜索到的环境变量不存在时,它会抛出访问冲突异常。这里有什么问题以及如何纠正它?
文档说,如果搜索的环境变量不存在, getenv() 函数将返回 NULL 指针,但为什么我会收到此访问冲突异常?
I am using MS Visual Studio 2008 for developing a C++ application. I use the 'getenv()' function to fetch an environment variable, but when the searched environment variable doesn't exist, it throws an access violation exception. What is the issue here and how to correct it?
The docs say that the getenv() function will return a NULL pointer if the searched environment variable doesn't exist, but why am I getting this access violation exception?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您使用
std::string(str)
时,std::string
类会调用strlen
,这在传递 NULL 时会产生访问冲突细绳。你需要做的是这样的:或者
你可以这样使用:
The
std::string
class callsstrlen
when you usestd::string(str)
, which will produce an access violation when passed a NULL string. What you need to do is something like:or
which you could use like this: