我如何 return 从函数指向 char[][][] 的指针?
How can i return a pointer to char[][][] from function?
我有一个 static
-char 数组定义为:
static const char city_names[1000][4][50];
我想 return 从函数中指向这个变量的指针,我尝试 static_cast
到 void*
但它失败了。我如何 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;
我有一个 static
-char 数组定义为:
static const char city_names[1000][4][50];
我想 return 从函数中指向这个变量的指针,我尝试 static_cast
到 void*
但它失败了。我如何 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;