gpt4 book ai didi

c - 直到运行时才知道尺寸的二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:07 24 4
gpt4 key购买 nike

我正在编写一个函数,它读取文件并将字符存储在二维数组中。我希望这是一个全局变量,因为我希望 main 方法之外的多个函数能够访问它,但是在我读取文件之后才能设置尺寸,那么这样做的方法是什么。在问这个问题之前,我已经阅读了 stack overflow 中的一些帖子,但我仍然感到困惑/这些问题对我解决这个特定问题没有帮助。

(我只能使用 ANSI c 提供的库/函数)

最佳答案

你想使用malloc:

int i;
t_data * rows;
t_data ** array;

// Allocate the 2d array as a dynamic 1d array of pointers to rows
array = malloc(sizeof(t_data *) * num_rows);

// Allocate each row as a dynamic 1d array of t_data
for ( i = 0; i < num_rows; i++ )
array[i] = malloc(sizeof(t_data) * num_cols);

这里,t_data是你要存储的数据的数据类型(对于每个数组元素),num_rows是读取的行数, num_cols 是读取的列数。

您可以通过array[i][j]访问元素。

当你用完数组后,你“反向”释放它:

for ( i = 0; i < num_rows; i++ )
free(array[i]);

free(array);

关于c - 直到运行时才知道尺寸的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253332/

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