是否定义了将二维数组视为一个行为的行为?

时间:2016-07-20 22:38:24

标签: c arrays casting c11

我可以把二维数组想象成一个传染性的字节序列。我的问题是,它可以被视为具有显式转换的一维数组而不调用未定义的行为吗?

我用gcc测试了以下代码,它运行正常并且没有崩溃。标准对此有何看法?

int main(void)
{
    char buf[2][5];
    strcpy((char *)buf, "link 101");
    printf("%s\n", (char *)buf);
    return 0;
}

只是说,我有充分的理由想到这一点。

1 个答案:

答案 0 :(得分:-1)

我相信,使用显式转换时可以将其视为一维数组。

基本上只是将一个双指针移到一个,我相信在这种形式下使用显式转换是标准的。

{{1}}