写一个C函数,函数中有一个参数是数组指针,函数中定义了两个数组,一个存储地址一个存储写入地址的值,该函数可以实现将值依次写入地址中
时间: 2023-05-27 20:07:27 浏览: 42
下面是一个示例函数:
```c
void writeArray(int *arrPtr, int size) {
int addresses[size];
int values[size];
// 依次读取地址和对应的值
for (int i = 0; i < size; i++) {
addresses[i] = *(arrPtr + i*2);
values[i] = *(arrPtr + i*2 + 1);
}
// 依次将值写入地址中
for (int i = 0; i < size; i++) {
*(int*)addresses[i] = values[i];
}
}
```
这个函数接收一个数组指针和数组的大小作为参数。在函数内部,我们定义了两个数组 `addresses` 和 `values`,分别用于存储地址和对应的值。
接下来,我们使用一个循环依次从传入的数组指针中读取地址和值,并将它们存储到对应的数组中。
最后,我们再次使用一个循环,依次将值写入到对应的地址中。注意,我们需要将地址强制转换为 `int*` 类型。
使用示例:
```c
int main() {
int arr[] = {0x1000, 10, 0x1004, 20, 0x1008, 30};
writeArray(arr, 3);
return 0;
}
```
在这个示例中,我们定义了一个包含 3 对地址和值的数组,然后调用 `writeArray` 函数将这些值写入到对应的地址中。