我在程序中遇到有关 char 类型变量的问题。 我没有发布代码,因为它太长了,但这大致是我想要做的:
#include ...
char path[100];
int main()
{
char path[100] = "C:/......";
[...]
out = function();
}
int function()
{
[...]
imwrite(path,image);
[...]
}
问题是我的路径变量似乎以某种方式丢失了,因为如果我在函数中的 imwrite 之前尝试 cout << path 它不会打印任何东西,就好像路径是空的一样。
我应该怎么做才能在函数中访问我的路径变量?
最佳答案
您正在主函数范围内以及全局范围内定义 path
变量。
在 main()
中,您有一个新的 path
声明:
char path[100] = "...";
这有效地为您提供了两个具有相同名称但在不同范围内的变量。如果您从 main
方法中访问 path
,它将访问局部范围的变量。
如果您希望保持这种方式,并删除全局作用域的 path
变量,您可以将您的函数重新声明为:
int function(char* p_path)
{
imwrite(p_path, image);
}
并将值作为参数从 main 传递:
char path[100] = "...";
...
function(path);
另外,您可以通过引用指定全局命名空间的 ::path
从 main 方法中强制访问全局范围的变量。但那是另一回事了。
关于C++ Visual Studio 2010 如何在不同函数中使用 char 类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704126/