【发布时间】:2014-10-31 05:42:18
【问题描述】:
类似于一维数组声明:
char arr[]={[0 ... RESERVED_CHARS-1]=' ',[RESERVED_CHARS]='\0'};
请告知如何/如果可能的话声明这样的二维数组?
#define SAY_MAX_MSG_LEN 6
#define REP_MAX_MSG_LEN 8
char *var_msg_out[][3]={\
{" Say ",[][0 ... SAY_MAX_MSG_LEN+1]=' ','\0'},\
{" Reply ",[][0 ... REP_MAX_MGS_LEN+1]=' ','\0'}\
};
snprintf(var_msg_out[0][1],SAY_MAX_MSG_LEN,"hello");
printf("%s",var_msg_out[0]);
谢谢!
【问题讨论】:
-
“类似于一维数组声明”,这对一维数组有效吗?
-
@PiotrS.:我也很惊讶。显然 [...] 是 GCC 扩展:gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Designated-Inits.html(它也适用于 Clang)。
标签: c multidimensional-array static-allocation