如何在C中初始化矩阵

哔叽

我需要h x h在C中使用空格初始化矩阵。

如何正确地做到无循环?

int h = 8;
char arr[h][h] = {{' '}}; // does not work.... 
来自莫斯科的弗拉德

这些声明

int h = 8;
char arr[h][h] = {{' '}};

声明一个可变长度的数组。可变长度数组只能在函数中声明(例如在main中),因为它们应具有自动存储期限,并且不能在声明中初始化。

所以你可以写例如

#include <string.h>

//...

int main( void )
{
    int h = 8;
    char arr[h][h];

    memset( arr, ' ', h * h );
    //...
}

也就是说,您可以应用memset将数组的所有字符都设置为空格的标准函数' '

尽管如此,即使您拥有一个非可变长度数组,也要使用空格字符来初始化其所有元素,最好还是使用该函数memset

#include <string.h>

//...

int main( void )
{
    enum { h = 8 };
    char arr[h][h];

    memset( arr, ' ', h * h );
    //...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章