65,186
社区成员




char* GetChar(char* v_pChr)
{
v_pChr = (char*)malloc(100);
strcpy(v_pChr,"abc");
return v_pChr;
}
char* p2 = NULL;
char* p3 = GetChar(p2);
char* p2 = NULL;
char* p3 = GetChar(p2);//形参传的是指针的值。。改变的只是p2的副本。。p2依然为NULL。。
如果是C++,可以这样改一下
char* GetChar(char *&v_pChr)//形参为指针的引用。。
{
v_pChr = (char*)malloc(100);
strcpy(v_pChr,"abc");
return v_pChr;
}
#include <iostream>
using namespace std;
char* GetChar(char** v_pChr)
{
*v_pChr = (char*)malloc(100);
strcpy(*v_pChr,"abc");
return *v_pChr;
}
int main()
{
char* p2 = NULL;
char* p3 = GetChar(&p2);
cout<<p2<<endl;
cout<<p3<<endl;
free(p2);
return 0;
}
正确代码!char* GetChar(char** v_pChr)
{
*v_pChr = (char*)malloc(100);
strcpy(*v_pChr,"abc");
return *v_pChr;
}
char* p2 = NULL;
char* p3 = GetChar(&p2);