1. ホーム
  2. c

[解決済み] C言語でのポインタのサイズ取得

2022-03-06 06:39:52

質問

C言語でポインタのサイズを取得する方法は? sizeof ? ポインタ(指されている値ではない)を格納するために、いくつかのメモリをmallocしたいのですが。

どのように解決するのですか?

任意の型が与えられたとき(ここでは char ここでは、具体的な例を挙げるためです。)

char *p;

これらの表現はどちらを使っても構いません。

sizeof(p)
sizeof(char *)

につながる。 malloc() というような呼び方をします。

char **ppc = malloc(sizeof(char *));
char **ppc = malloc(sizeof(p));
char **ppc = malloc(sizeof(*ppc));

最後のバージョンは、もし型が ppc が変更されても、式は正しいスペースを確保します。