我试图发送一个指向函数的指针,但该指针是指针数组的一部分

void func(A **pa)
{
     return;
}


A *pa;
pa=(A*)malloc(2*sizeof(A));

因此,数组pa[0]中的第一个项很容易发送(因为它是指针指向的位置)
func(&pa);

但是现在我被卡住了,我怎么才能把第二件东西寄出去呢?pa[1]
我试过类似于func(&pa + 1*sizeof(A));
但似乎没用。

最佳答案

您正在寻找&pa[1]

func (&pa[1]);   // call function with second element of pointer array

顺便说一下,我不知道你是不是打算只分配一个由两个指针组成的数组,但是如果你是,malloc就出错了应该是
pa = malloc (2 * sizeof(A*));  // note the addition of * after "A"

您所做的是分配两倍于A的大小,可以想象这可能是数千字节长指向这样一个对象的指针不需要那么大的空间。
此外,在C中,不需要也不应该强制转换malloc()的返回类型。

关于c - 将指针发送到函数,而指针是指针数组的一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13599007/

10-14 20:53
查看更多