[英]How can i return a pointer to char[][][] from function?
我有一個static
-char 數組定義為:
static const char city_names[1000][4][50];
我想從函數返回一個指向這個變量的指針,我嘗試了一個static_cast
到void*
但它失敗了。 如何返回指向char[][][]
的指針?
指向數組的指針(更准確地說是數組的第一個元素,如果您將使用數組對其進行初始化)可以聲明為
static const char city_names[1000][4][50];
const char ( *p )[4][50] = city_names;
所以返回這樣一個指針的 function 聲明看起來像
const char ( *f( /* some parameters */ ) )[4][50];
在 function 中你可以寫
return city_names;
也就是說,如果你有一個聲明為
T a[N1][N2][N3];
其中 T 是某個類型說明符,N1、N2、N3 是指定數組大小的常量,那么您可以重寫聲明,如
T ( a[N1] )[N2][N3];
要獲得指向數組元素類型的指針,只需將記錄( a[N1] )替換為指針的聲明符,如
T ( *p )[N2][N3] = a;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.