小编Way*_*yne的帖子

背后的逻辑通过指针传递给C中的指针

我从这个页面学到了:常见问题解答,如果你想初始化一个函数内部的指针,那么你应该将指针传递给指针,即**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但只找到解决方案或简短说明.任何人都可以提供更多细节吗?

c malloc pointers

1
推荐指数
1
解决办法
385
查看次数

标签 统计

c ×1

malloc ×1

pointers ×1