Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将数组指针作为参数传递给函数_C - Fatal编程技术网

C 如何将数组指针作为参数传递给函数

C 如何将数组指针作为参数传递给函数,c,C,有一个结构描述三维中的点。三角形可以明显地描述为三个点。我必须编写一个函数,它接受一个指针point3d*face[3],并为其分配一个三角形的地址,该地址是在某个操作过程中标记的。如何做到这一点 struct point3d { float x; float y; float z; }; void copy_address(point3d *face[3]) { face = another_address; } int main() { point3d

有一个结构描述三维中的点。三角形可以明显地描述为三个点。我必须编写一个函数,它接受一个指针
point3d*face[3]
,并为其分配一个三角形的地址,该地址是在某个操作过程中标记的。如何做到这一点

struct point3d
{ 
   float x;
   float y;
   float z;
};

void copy_address(point3d *face[3])
{
   face = another_address;
}

int main()
{
    point3d *face[3];
    f(&face);
    return 0;
}
使用以下命令:

struct point3d
{ 
   float x;
   float y;
   float z;
};
struct point3d p[3];
void copy_address(struct point3d (**face)[3])
{
   *face = &p;
}

int main()
{
    struct point3d (*face)[3];
    copy_address(&face);
    return 0;
}
注:

因为
face
是指向三个点的数组的指针,所以需要像
struct point3d(*face)[3]中那样在其周围放上大括号
表示“(
face
是指针)指向3个点的[array]

您必须添加
struct
关键字,因为
point3d
本身无法识别类型


copy\u address
的定义中,您需要另一个间接寻址,因为您要分配给指向数组的变量。它现在意味着“(
face
是指针的地址)指向3个点的[array]。

我仍然得到错误(GCC)预期
为“float*”,但参数类型为“float”
@,检查GCC指向的错误行号。您得到的错误与将数组指针作为参数传递给函数无关。