gpt4 book ai didi

无法在 C 中制作自定义数组大小表?

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:44 25 4
gpt4 key购买 nike

你好,我想创建一个 2xX 的数组表,X 是一个自定义数字,比如 20,这样我们将得到一个 2x20 的数组表,所有这些都在 c 中。我试过这样做

int j=20;

int table[2][j];

但看起来我无法让它工作!!

最佳答案

在 C99+ 中你有 Variable Length Arrays .但是,看起来您没有使用 C99+ 编译器(Visual Studio?),无论如何这可能不是一个好主意,因为 X 的大值可能会破坏您的堆栈。如果可以保证合理的大小,并且可以使用不同的编译器,这是一个不错的选择。

但是,如果您不能使用 VLA,则需要使用动态分配:

int *table = malloc(rows * columns * sizeof *table);

这只是分配了一大块足够大的内存来容纳你的整个表。要获取特定元素,请使用...

int item = table[y * columns + x];

如果你想使用 table[x][y] 语法,那么你需要以不同的方式分配它。

int (*table)[columns] = malloc(rows * sizeof *table);
/* ... */
table[i][j] = value;
/* ... */
int item = table[i][j];

这里,table 是指向 columns int 数组的指针。

关于无法在 C 中制作自定义数组大小表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21356154/

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