好的,所以我像这样调用函数 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/