我有一個返回void指針的函數。假設我知道指向的數據塊是一個int數組。我如何打印它們?虛擬指針的打印值
從另一個線程我看到了,我投的空隙,例如我所需要的數據類型是這樣的:
printf("%i",*((int*)data));
但是就像我說的數據是int數組。我試圖做到這一點,但它不是一個有效的表達式:
for(i = 0; i<3; i++){
printf("%i \n", *((int*)(data+sizeof(int)*i)));
}
什麼是印刷本的正確方法?
'int * ptr = void_pointer;'然後使用'ptr'。 (您也可以編寫'*((int *)data + i)',但使用'int *'則不太容易出錯。) –
順便說一句,'*((int *)data + i) '是完全有效和正確的(儘管完全不可讀)。 – 2013-06-05 21:48:43
@ H2CO3比'*(int *)((char *)data + i * sizeof(int))'更可讀,不是嗎? ;) –