c问题~~如果想在函数中传递了一个指针的值作为实参,而在形参中改变指针的本身值

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:06:30
需要怎么做,高手帮帮忙~~

void TestFunction(char** ptr1, char*& ptr2)
{
*ptr1 = "abc";
ptr2 = (char*)malloc(6);
strcpy(ptr2, "abc");
}

int main()
{
char* ptr1 = NULL, *ptr2 = NULL;
TestFunction(&ptr1, ptr2);
printf("%s\n", ptr1);
printf("%s\n", ptr2);
free(ptr2);
}

对就是得用引用。比如原来函数形参表中整型(类型随意,这里只是随便举个例子)指针声明为int* a,那么它接受了形参之后,只能改变形参指向的数据的值,而不能改变形参的值。所以声明为int* &a,就可以了,以后操作a就和操作实参指针一样了。不仅仅是指针任何类型的数据都可以进行引用调用,这样比较快捷。

用地址或引用参数