9

ポインタのアドレスを格納するには何が必要ですか?

  int a = 2;
  int *p = &a;
  int **q = &p;

実用的な使用はありますか?リアルタイム アプリケーション。

4

5 に答える 5

11

A**は単なるポインターへのポインターです。したがって、*pには のアドレスが含まれ、 には オブジェクトのアドレスpを含む のアドレスが含まれます。p**p*p

**関数呼び出しの外でもメモリ割り当てまたは代入を保持したい場合に使用されます。

こちらの記事もチェックしてください。

例:-

void allocate(int** p)
{
  *p = (int*)malloc(sizeof(int));
}

int main()
{
  int* p = NULL;
  allocate(&p);
  *p = 1;
  free(p);
}
于 2013-08-19T05:35:35.703 に答える
4

する

int main (int argc, char** argv) { ... }

見覚えがあります?

于 2013-08-19T16:18:49.063 に答える
3

他の関数でN次ポインタを配置したい場合は、(N+1)次ポインタを使用する必要があります。例えば:

void allocate_matrix(int ***ptr, int x, int y);

行列を割り当てましょう:

int **matrix:
allocate_matrix(&matrix, 5, 5);
于 2013-08-19T06:56:18.643 に答える