c - 打印 void 指针的值

标签 c arrays pointers void

我有一个返回空指针的函数。可以说我知道指向的数据 block 是一个整数数组。如何打印它们?

从另一个线程我看到我以这种方式将 void 转换为我想要的数据类型:

printf("%i",*((int*)data));

但正如我所说,数据是一个整数数组。我试图这样做,但它不是一个有效的表达式:

for(i = 0; i<3; i++){
    printf("%i \n", *((int*)(data+sizeof(int)*i)));
}

打印这个的正确方法是什么?

最佳答案

只需使用一个临时的int*:

int *p = data;
for (int i=0; i<3; i++)
    printf("%i\n", p[i]);

请注意,第一行中没有显式转换,因为 void* 不需要,避免显式转换被认为是良好的 C 风格。在循环中,我使用了这样一个事实,即您可以索引一个指向数组的指针,就好像它是数组本身一样。

关于c - 打印 void 指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950448/

相关文章:

arrays - Ocaml 中的数组操作

C 命令行参数

C 中的缓存模拟器错误

c - 如何用C语言编写具有多个条件的while循环

c - 在 C 中处理命令行参数时出错

c - 在结构数组中搜索函数 - 停止条件未知

ANSI C 中 *& 的取消

c - 这段代码在 C 中是如何工作的

c++ - 从 char 到 const* char 的无效转换,代码有什么问题?

javascript - 如何仅删除数组的当前实例,而不是数组的所有实例?