下面的代码可以吗?:
std::vector<char> var;
size_t requiredSize;
getenv_s(&requiredSize, NULL, 0, "Something");
if (requiredSize == 0)
{
return ENV_NOT_EXIST;
}
if(var.size() < requiredSize)
var.resize(requiredSize);
// Get the value of the environment variable.
getenv_s(&requiredSize, &var[0], requiredSize, "Something");
std::string str(var.begin(),var.end());
如果这段代码没问题,有人可以解释一下向量begin()
的值和end()
值是如何更新的吗?var
看起来这段代码直接更改了向量的内部数组,而不是通过std::vector
api - 那么这些值如何更新为实际大小?