Что это значит: (void *) 0x00 - PullRequest
4 голосов
/ 16 декабря 2009

Есть идеи, что это значит? Не уверен в языке.

(недействительно *) 0x00

Ответы [ 6 ]

8 голосов
/ 16 декабря 2009

В C это означает нулевой указатель, то есть указатель, который не указывает на соответствующие данные.

При попытке получить доступ к этим данным возникает ошибка сегментации, по крайней мере, в Unix / Linux.

3 голосов
/ 16 декабря 2009
#ifndef NULL
#   define NULL ((void *) 0)
#endif

Тогда вы можете использовать NULL в различных функциях!

1 голос
/ 16 декабря 2009

Актер предлагает C или C ++. Это целочисленный ноль, приведенный к типу указателя, что означает, что это нулевой указатель. Это стандартный способ определения нулевого указателя в C (за исключением того, что (void *)0 используется чаще), но в C ++ это значение нулевого указателя определенного типа.

1 голос
/ 16 декабря 2009

Это нулевой указатель C / C ++ AFAIR:)

1 голос
/ 16 декабря 2009

выглядит как C, и это означает указатель на ячейку памяти 0. («void *» означает указатель на необработанную память и указывает компилятору / программисту, что тип неизвестен или не указан)

уточнение: это указатель, содержащий значение 0, которое на большинстве платформ является специальным значением, известным как NULL, указывающим недопустимый / неинициализированный указатель, и разыменование которого вызывает исключение. На некоторых платформах (например, на некоторых микроконтроллерах) ячейка памяти 0 является допустимым значением указателя.

0 голосов
/ 16 декабря 2009

Странное обозначение C. Если бы мне пришлось угадывать, я бы сказал, что этот парень пытается форсировать двоичный 0 в указатель на некоторой платформе, где NULL не является двоичным 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...