如何把 b[10]的值赋给const void *buf里面去
时间: 2023-12-25 18:04:00 浏览: 68
如果您想将数组 `b[10]` 的值赋给 `const void *buf`,您可以使用类型转换来实现。以下是一个示例代码:
```c
#include <stdio.h>
void some_function(const void *buf, size_t length) {
// 将 buf 视为 unsigned char * 类型的指针
const unsigned char *ptr = (const unsigned char *)buf;
// 打印 buf 中的值
for (size_t i = 0; i < length; i++) {
printf("buf[%zu] = %d\n", i, ptr[i]);
}
}
int main() {
int b[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 将 b 的地址赋给 const void *buf
const void *buf = (const void *)b;
// 调用函数并传递 buf 和长度
some_function(buf, sizeof(b));
return 0;
}
```
在上述代码中,我们使用类型转换 `(const void *)b` 将数组 `b` 的地址转换为 `const void *` 类型,并将其赋值给 `buf`。然后,我们将 `buf` 和数组的长度传递给 `some_function` 函数进行处理。
在 `some_function` 函数中,我们将 `buf` 视为 `unsigned char *` 类型的指针,并使用循环遍历打印出每个字节的值。
请注意,由于 `buf` 是一个常量指针,您不能通过它进行写操作,只能进行读操作。
希望这能帮助到您!如果您有任何疑问,请随时提问。
阅读全文