我如何 return 从函数指向 char[][][] 的指针?

How can i return a pointer to char[][][] from function?

我有一个 static-char 数组定义为:

static const char city_names[1000][4][50];

我想 return 从函数中指向这个变量的指针,我尝试 static_castvoid* 但它失败了。我如何 return 指向 char[][][] 的指针?

指向数组的指针(更准确地说,指向数组的第一个元素,如果你用数组初始化它的话)可以这样声明

static const char city_names[1000][4][50];

const char ( *p )[4][50] = city_names;

所以函数声明returns这样的指针可以看起来像

const char ( *f( /* some parameters */ ) )[4][50];

在函数中你可以只写

return city_names;

也就是说,如果你有一个像

这样声明的数组
T a[N1][N2][N3];

其中 T 是某种类型说明符,N1、N2、N3 是指定数组大小的常量,那么您可以像这样重写声明

T ( a[N1] )[N2][N3];

要获取指向数组元素类型的指针,只需将记录 ( a[N1] ) 替换为指针声明符,如

T ( *p )[N2][N3] = a;