c - 使用函数填充 C 中的数组

标签 c arrays function pointers

好的,所以我像这样调用函数 fill_arrays:

fill_arrays(&data1, &data2, &size1, &size2);

fill_arrays 看起来像这样:
void fill_arrays(int **data1, int **data2, int *size1, int *size2){
   *size1 = get_size(*size1, 1);
   *size2 = get_size(*size2, 2);
   *data1 = malloc(*size1 * sizeof(int *));
   *data2 = malloc(*size2 * sizeof(int *));
   input_data(&data1, *size1, 1);
}

在 input_data 函数中,我想为数组分配一些数字:
void input_data(int **data, int size, int index){
   *data[5] = 5;
}

问题是,我完全迷失了指针......也许你可以告诉我我应该如何调用函数 input_data 以便能够为数据数组分配一些数字?

最佳答案

假设 input_data应该将所有数组值设置为已知值,您可以编写

void input_data(int *data, int size, int value){
    for (int i=0; i<size; i++) {
        data[i] = value;
    }
}

像这样称呼这个
input_data(*data1, *size1, 5); // set all elements of data1 to 5

这里的关键是你可以使用 (*data1)[index]访问特定的数组元素,并可以将数组作为 int* 传递论据。

关于c - 使用函数填充 C 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16041191/

相关文章:

javascript - 单击(宽度)时更改属性的功能不起作用

function - 泛型函数,类和 “where”关键字

c - 文本文件每一行上特定符号的出现频率

c++ - 在 AT&T 内联汇编中将 float / double 设置为常量值

java - 使用流填充多维数组

javascript - 通过脚本比较 google 表格中的 A 列。当匹配正确时,然后在两侧粘贴偏移值

c - 使用 malloc 获取二维数组的段错误

c - 在信号处理程序上调用 fprintf() 是否安全?

javascript - JavaScript [] 是如何工作的?

r - 将 `rlang::exec` 与使用 `rlang::ensym` 的函数一起使用