gpt4 book ai didi

c++ - 使用特定值初始化可变二维数组

转载 作者:行者123 更新时间:2023-11-30 18:14:11 26 4
gpt4 key购买 nike

我知道我们可以通过写入将二维数组初始化为 0

a[value_1][value_2] = {0};

如果我们写

a[value_1][value_2] = {number other than 0};

第一个元素由 { } 中给定的数字初始化,其余全部为 0。

但是,困扰我的是,我们如何初始化一个数组,其参数 value_1 和 value_2 已从用户处获取输入,因为它显示可变大小对象可能无法初始化的错误。

此外,如果您也能对多维数组(而不仅仅是二维数组)进行同样的说明,将会很有帮助。

最佳答案

要在 C99 中执行此操作(使用 gcc -std=c99 编译):

#include <stdio.h>
#include <string.h>

int main ()
{
int value_1, value_2;
scanf("%d %d", &value_1, &value_2);

int a[value_1][value_2];

// initialize
for (int i=0; i<value_1; i++)
for (int j=0; j<value_1; j++)
a[i][j] = 0;
// or
memset(a, 0, value_1*value_2*sizeof(int));

return 0;
}

正如 @JensGustedt 所指出的,在 C++ 中,不支持可变长度数组。另一方面,g++ 支持它,因此上面相同的代码也可以在那里工作。

据我所知,无论是在 C 中还是在 C++ 中,都不支持可变大小对象中的初始值设定项。

关于c++ - 使用特定值初始化可变二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18482395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com