将单指针和双指针传递给c 中的函数

我试图在函数中传递单个指针双指针 。 但它给了我错误。

int main() { int *pt; fun(pt); . . } fun(int *pt) { pt=(int*)malloc(6*sizeof(int)); . . } 

我们使用双指针时的语法是什么。 任何人都可以用一个例子来描述它,或者可以编辑上面的例子。 我将非常感谢你。

引用语义的基本思想是函数修改存在于函数自身范围之外的其他一些对象。 您可以通过将正在引用的对象的地址传递给带有“指向对象类型的指针”类型的参数的函数,在C中实现引用语义。

“通过指针引用语义”的关键标志包括以下两点:

  • 调用者获取某些内容的地址(通过& -operator)。
  • 被调用者取消引用该参数。

例如:

呼叫者:

 T x; f(&x); // address-of 

被调用者:

 void f(T * p) // take argument as pointer { (*p).y = 20; // dereference (via *) p->x = 10; // dereference (via ->) } 

在您的情况下, T = int *

 int * pt; fun(&pt); // function call takes address void fun(int ** p) // function takes pointer-to-object... { *p = malloc(173); // ...and dereferences to access pointee }