Ответ 1
Для произвольного типа (здесь я выбрал char
, но это для конкретного примера):
char *p;
Вы можете использовать любое из этих выражений:
sizeof(p)
sizeof(char *)
Для вызова malloc()
, например:
char **ppc = malloc(sizeof(char *));
char **ppc = malloc(sizeof(p));
char **ppc = malloc(sizeof(*ppc));
Последняя версия имеет некоторые преимущества в том, что если тип ppc
изменяется, выражение по-прежнему выделяет правильное пространство.