0

私が持っている場合:

struct X {
  int a;
  struct X* next;
}

struct X** ptr;

ptr は構造体 X のアドレスで初期化され、各構造体 X の next は別の構造体 X を指します。

ptr[i] // where i is unsigned int

これが私の質問のソースです:(selinuxからのコードへのリンクです):コード

タイプは次のように定義されています:タイプ

4

2 に答える 2

0

ゴミがでます。ポインター演算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は役に立たないでしょう。

于 2013-09-27T06:08:19.773 に答える
-1

ptr[i]ith ポインタを指しますptr。type の要素を指していると想定されるポインタptrの行があると仮定しています。iX

于 2013-09-27T06:09:05.623 に答える