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指向的错误行号。您得到的错误与将数组指针作为参数传递给函数无关。