// C lang
#include <stdio.h>
void func (void *ptr) {
int *iptr = ptr;
printf("{%d, %d, %d}\n", iptr[0], iptr[1], iptr[2]);
}
int main()
{
int ary[] = {111, 222, 333};
func(&ary);
return 0;
}
にボイドポインタの値を取得=>出力:{111、222、333}アレイ
// Vala
public void func (void *ptr) {
int *iptr = ptr;
print("{%d, %d, %d}\n", iptr[0], iptr[1], iptr[2]);
}
void main(string[] args) {
int[] ary = {111, 222, 333};
func(&ary);
}
=>出力:{155115112、155115112、3}
?
配列へのvoidポインタの値をvalaで取得する方法は?
※void[]
を使用すると、void*
を使用するよりも優れていますか?これを行うことができるように
'void *'の値を配列に渡すことはできませんか? –
'void *'を 'int []'にキャストできます。私はそれを示すために私の答えを編集します。 –
JensはValaでポインタを使用しないことについて絶対に正しいです。もしあなたがValaで(libxmlのような)それらを必要とするバインディングとやりとりする以外に何かのためにポインタを使用しているのであれば、間違っているでしょう。 – nemequ