-1

void ポインターの配列に入れたい void ポインターのセットがあります。私はmallocから始めます:

void **p2vals=malloc(nelems*sizeof(void*));

..これにより、ポインターへのポインターの配列が得られます。しかし、*p2vals のように p2vals を逆参照したいので、1 つの void ポインターを取得すると思われます。もちろん、コンパイラはそれを好まないのですが、私にはそれが必要です。設定したい

*(p2vals+someoffset)=somevoidptr;
4

2 に答える 2

0

メモリ アドレスを変数として保存する場合は、uintptr_t代わりにを使用することをお勧めします。void *また、オフセットを読み書きする場合は、 を実行します(uintptr_t)((char *)(pointer) + offset)

于 2013-04-12T07:30:16.773 に答える
0

検討、

int a = 5;
int *p = &a;

この場合、p が整数を指すことをコンパイラに示します。そのため、実行時に のようなことを行うと*p、no. int のサイズに等しいバイト数が読み取られます。

void ポインターを逆参照すると、コンパイラーは正確に読み取るバイト数を認識できません。typeそれらを使用する前に、それらをいくつかに型キャストする必要があります

于 2013-04-12T07:21:23.693 に答える