如何在用户定义的命名空间的成员函数中引用指针 **environ?
How to refer to the pointer **environ in a user-defined namespace's member function?
#include <iostream>
namespace A {
void func();
}
void A::func()
{
extern char **environ;
std::cout << environ[0] << std::endl;
}
int main()
{
A::func();
return 0;
}
像上面的代码一样,我只想在 A::func()
中使用系统定义的指针**environ
,但 g++ 总是说:
undefined reference to `A::environ'
如何正确使用系统定义的变量environ
?
添加
#include <unistd.h>
环境必须在全球范围内。
所以代码看起来像这样:
#include <iostream>
#include <unistd.h>
extern char **environ;
namespace A {
void func();
}
void A::func()
{
std::cout << environ[0] << std::endl;
}
int main()
{
A::func();
return 0;
}
你只需要在全局范围内声明environ
,当然这是定义它的地方,而不是在你的函数中。
如果你想更简洁一点,避免不必要地使用全局变量,你可以这样声明 main:
int main(int argc, char* argv[], char* envp[])
然后只需将envp
传递给您的函数即可。 它将与全局相同。
相关文章:
- C++取消引用指针.为什么会发生变化
- 深层复制具有自引用指针的类
- Visual c ++,使用字符串引用/指针调用 dll 函数
- std::unordered_map::提取引用/指针失效
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- 区分接受常量参数的函数引用/指针和与函数参数同名的非常量参数
- 如何在 c++ 中使用带有数学运算的引用/指针?
- 了解通过引用传递取消引用指针时C++堆/堆栈分配
- 取消引用指针并立即为其分配变量,导致分段错误
- 如何获取指向类(而不是对象)的引用/指针
- 将类型参数传递给自引用指针
- 我应该如何定义返回指针的函数?(引用指针与指针指针)
- 在析构函数内取消引用指针时出现分段错误
- 来自引用指针的内存泄漏
- 引用指针后面的值
- 无法取消引用指针
- 引用指针调用成员函数
- 未定义的引用指针的变量模板在clang中功能,而不是GCC
- 取消引用指针以创建数组的副本
- 有关启动引用指针的引用的问题