1

私はCで何かをコーディングしていて、「これを、この数値と同じバイト数のデータ型を指すポインターにキャストする」と言えると便利な状況に対処しています。

例はそれをより明確にします-私はsize_tシステム上のポインターのサイズを取得するために使用しています。void *ここで、ポインターをそのサイズのデータ​​型へのポインターに移植可能にキャストしたいと考えています。任意のポインター型にキャストでき、同じ長さになることはわかっていますが、変数が指しているデータ型によってポインター演算が異なります。また、私の場合はたまたまsize_t8 バイトであり、. これを行う方法はありますか? doublevoid *double *

4

2 に答える 2

0

何が悪いのかsize_t*(私があなたの質問を理解したと仮定して)

バイトを含む型へのポインタが必要な一般的なケースではn、次のことができます。

void *voidptr=... //assign whatever you want.
char (*myptr)[n]=voidptr; //a pointer to char[n]
于 2012-04-11T10:25:58.077 に答える
0

ポインタと同じサイズの型へのポインタが必要な場合は、なぜ使用しないのvoid **ですか?

于 2012-04-11T10:24:22.917 に答える