函数输入、输出参数地址有关问题
函数输入、输出参数地址问题
现在需要实现这样一个功能:
通过一个输入参数传入一个char*,通过输出参数char*返回输入参数char*的地址。也就是希望输出参数的指针地址和输入char*一样。请问应该如何实现?
定义如下函数,可是输出指针的地址outpoint并不能在函数调用后仍然指向inpoint的地址(在函数体内可以指向),函数返回后outpoint指向NULL即mian中对outpoint的初始值。
请问各位这是为什么?要实现我的需求应该如何实现,望各位执教!
void Test(char* inpoint,char* outpoint)
{
outpoint = inpoint;
}
int main()
{
char* inpoint = new char(256);
char* outpoint = NULL;
strcpy(inpoint, "hello ");
Test(inpoint, outpoint);
return 0;
}
------解决方案--------------------
void Test(char* &inpoint,char* &outpoint)
------解决方案--------------------
void Test(char* inpoint,char* outpoint)
=========>
void Test(char* inpoint,char*& outpoint)
------解决方案--------------------
void Test(char* inpoint,char** outpoint)
{
*outpoint = inpoint;
}
------解决方案--------------------
char* output)
这是还是用作传值调用,应用**output.
------解决方案--------------------
如果觉得二重指针很难理解就直接用return返回吧。
现在需要实现这样一个功能:
通过一个输入参数传入一个char*,通过输出参数char*返回输入参数char*的地址。也就是希望输出参数的指针地址和输入char*一样。请问应该如何实现?
定义如下函数,可是输出指针的地址outpoint并不能在函数调用后仍然指向inpoint的地址(在函数体内可以指向),函数返回后outpoint指向NULL即mian中对outpoint的初始值。
请问各位这是为什么?要实现我的需求应该如何实现,望各位执教!
void Test(char* inpoint,char* outpoint)
{
outpoint = inpoint;
}
int main()
{
char* inpoint = new char(256);
char* outpoint = NULL;
strcpy(inpoint, "hello ");
Test(inpoint, outpoint);
return 0;
}
------解决方案--------------------
void Test(char* &inpoint,char* &outpoint)
------解决方案--------------------
void Test(char* inpoint,char* outpoint)
=========>
void Test(char* inpoint,char*& outpoint)
------解决方案--------------------
void Test(char* inpoint,char** outpoint)
{
*outpoint = inpoint;
}
------解决方案--------------------
char* output)
这是还是用作传值调用,应用**output.
------解决方案--------------------
如果觉得二重指针很难理解就直接用return返回吧。