我从这个页面学到了:常见问题解答,如果你想初始化一个函数内部的指针,那么你应该将指针传递给指针,即**pasfoo1()
void foo1(int **p) {
*p = malloc(100*sizeof(int)); // caller can get the memory
}
void foo2(int *p) {
p = malloc(100*sizeof(int)); // caller cannot get the memory
}
Run Code Online (Sandbox Code Playgroud)
但是,指针意味着它的值是它指向的地址.foo2()离开其范围后分配的内存在哪里?
我仍然无法弄清楚传递指针值和指针指针之间的不同行为?我搜索SO但只找到解决方案或简短说明.任何人都可以提供更多细节吗?