0

リストがあります。リストの各要素は構造体です。

struct A
{
   int size;
}

データは次のようになります。

list[0]->size = a number.

リストの各メンバーにポインタを割り当てるにはどうすればよいですか?

int *p;
for(i = 0; i < listSize; i++)
{
  p = &list[i];
} 

リストの最後の要素に 1 つのポインターのみを割り当てているため、これは機能しません。ポインターのリストを作成する必要がありますか?

これで XY 問題が解決するはずです。 リストのすべての要素のポインタを作成するにはどうすればよいですか?

編集:リストは次のようになります

A **list;

構造体ではなくポインターでソートして、高速化したいと考えています。

これを今試しています:

A ***p = (A***) malloc(sizeof(A***));

for(i = 0; i < listLength; i++)
    p[i] = &list[i];

for(i = 0; i < listLength; i++)
    printf( p[i]->size); // Error.
4

2 に答える 2

1

次のようなポインターの配列を作成できます。 struct A *arr_pointer[N]

基本的に、構造体をリンクすると次のようになります。

struct A {
    int size;
    struct A *next;
};
于 2013-10-12T02:54:33.147 に答える