我有一个返回空指针的函数。可以说我知道指向的数据 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/