使用空指针,在函数内部赋值,需要使用指向指针的指针
把一个指针作为参数时,指针不能为未指向地址的值,必须为一个指向确定地址的值
- 参数为取地址符或者指针的指针
- 函数内为空指针分配空间,退出函数后,函数中的赋值仍然存在
例子
struct StructA {
char* a;
char* b;
};
void testPtrStruct(struct StructA** _pS) {
*_pS = new StructA;
}
int main()
{
StructA* pA = nullptr;
cout << "pointer address before constructing: "<< pA << endl;
testPtrStruct(&pA);
cout << "pointer address after constructing : " << pA << endl;
return 0;
}
输出
pointer address before constructing: 0000000000000000
pointer pointer address after: 000000B1F4EFF898
pointer address after constructing : 000001FF70CB3A80
图解:指向指针的指针传参
参考:https://blog.csdn.net/wang371372/article/details/51304003