在C中初始化一个大的二维数组

mat*_*ots 0 c initialization multidimensional-array

我想初始化以下所有元素:

char buffer[1000][1000];
Run Code Online (Sandbox Code Playgroud)

' '.

我试过了

char buffer[1000][1000] = { ' ' };
Run Code Online (Sandbox Code Playgroud)

char buffer[1000][1000] = { { ' ' } };
Run Code Online (Sandbox Code Playgroud)

但这两种方式似乎只是初始化第一个任期.

我愿意考虑完成工作的替代方法,但我宁愿避免在main中编写这种初始化代码,甚至是单独的初始化方法.

Chr*_*oph 9

memset(buffer, ' ', sizeof buffer);
Run Code Online (Sandbox Code Playgroud)

如果阵列具有自动存储持续时间,请考虑堆分配以避免堆栈溢出.

如果数组具有静态存储持续时间,则仍需要在运行时初始化数组,因为无法为非零值初始化元素而不为每个元素提供单独的初始化值.