私が持っている場合:
struct X {
int a;
struct X* next;
}
struct X** ptr;
ptr は構造体 X のアドレスで初期化され、各構造体 X の next は別の構造体 X を指します。
ptr[i] // where i is unsigned int
これが私の質問のソースです:(selinuxからのコードへのリンクです):コード
タイプは次のように定義されています:タイプ
ゴミがでます。ポインター演算p[i]
を機能させるには、オブジェクト (この場合は構造体へのポインター) をメモリー内 (配列内) に次々と配置する必要があります。
あなたの場合、next
ポインターi
時間に従う必要があります。
struct X *p = *ptr;
for (j = 0; j < i; ++j) p = p->next;
/* now p points to the i-th struct */
構造体が実際に配列内にある場合、これは次と同等です
struct X *p = (*ptr)[i];
しかし、その場合、それnext
は役に立たないでしょう。
ptr[i]
のi
th ポインタを指しますptr
。type の要素を指していると想定されるポインタptr
の行があると仮定しています。i
X