Нахождение размера указателя - PullRequest
2 голосов
/ 29 апреля 2010
printf("pointer: %d\n", sizeof(*void));

Эта строка приводит к синтаксической ошибке из-за *. Что я должен сделать, чтобы заставить его работать?

Ответы [ 2 ]

9 голосов
/ 29 апреля 2010

В данный момент вы пытаетесь узнать размер по адресу void. Если вы хотите узнать размер пустого указателя, попробуйте вместо этого: sizeof (void *).

printf("pointer: %zu\n", sizeof(void*));

должен делать то, что вы хотите. Используйте% zu, а не% d, так как указатель является значением без знака, а не десятичным числом.

Edit: Что-то еще, о чем я только подумал в первый раз, зависит ли компилятор% zu? Нужно ли действовать по-другому на 32-битной или 64-битной архитектуре?

6 голосов
/ 29 апреля 2010
printf("pointer: %d\n", sizeof(void*));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...