结论:需要调用函数为一维空指针确定值的情况下,需要传入二维指针,也就是那个一维指针的指针
例子:为空指针p开辟内存空间 1、不用二级指针(无法实现)#include2、使用二级指针(能够实现)#include void fun(int* p) { p = (int*)malloc(sizeof(int) * 1); if(NULL!=p) *p = 5; } int main() { int* p = NULL; fun(p); if (NULL != p) { printf("%dn", *p); } else { printf("p is NULL!n"); //p is NULL! } return 0; }
#include#include void fun(int** pp) { *pp = (int*)malloc(sizeof(int) * 1); if(NULL!=*pp) **pp = 5; } int main() { int* p = NULL; int** pp = &p; fun(pp); if (NULL != p) printf("%dn", *p); //5 return 0; }
参考文章:C语言什么时候必须用到二级指针啊? - 立言兼的回答 - 知乎



