Когда что-то отлито для void, тогда значение становится NULL
. Однако почему void * указывает на любой тип данных? Не должен ли бесполезный указатель быть бесполезным?Почему указатель void указывает на что-либо?
ответ
Пустоты указатель является указателем на что угодно. Это общий указатель, который не имеет определенного типа. Он также может иметь значение NULL
, и в этом случае он не указывает ни на что. Чтобы использовать указатель void, вы должны следить за тем, на что он на самом деле указывает, и когда вы собираетесь его использовать, вы должны применить его к соответствующему типу.
Они могут быть опасными, потому что если вы примените его к неправильному типу, это приведет к неопределенному поведению во время выполнения.
Когда что-то отлито для void, значение становится NULL.
Неверно. Ничего не происходит с указанными данными.
Не должен ли указатель на пустоту быть бесполезным?
Пустота указатель ближе всего C имеет к «общему типу» и очень полезно тем, что позволяет таким вещам, как несколько общих функции, несколько общих контейнеры и т.д.
+1 для "несколько". :) –
void *
- общий указатель на объект. Обратите внимание, что нет указателя общей функции.
Вы можете преобразовать любое значение указателя объекта в void *
и обратно без потери стоимости.
- 1. void * указывает на структуру?
- 2. Создайте объект в памяти, на который указывает указатель на void
- 3. Что указывает на указатель?
- 4. Как проверить, указывает ли указатель void на NULL?
- 5. На что указывает указатель?
- 6. Почему этот указатель указывает на никуда?
- 7. void указатель на указатель структуры
- 8. Void указатель на указатель объекта
- 9. Указатель void на функцию
- 10. Указатель на указатель на функцию функции Void
- 11. Указатель класса на void *
- 12. указатель на void
- 13. Освобождение всего пространства памяти, на которое указывает указатель на указатель?
- 14. Указатель на вектор не указывает
- 15. Почему указатель void дал бы другой адрес, чем тот, на который он указывает?
- 16. Почему этот указатель на структуру не указывает на правильный?
- 17. указатель на void в умный указатель
- 18. Почему указатель массива не указывает на начало массива после копирования
- 19. Как использовать указатель void (void *)
- 20. c, присваивая значение, на которое указывает void * to void * array
- 21. Вывод указателя на указатель пустоты, который указывает на другой указатель
- 22. void указатель на векторные элементы
- 23. Где этот указатель фактически указывает?
- 24. Ошибка сегментации. Почему этот указатель указывает на неверный адрес?
- 25. Указатель на указатель, назначенный двумерному массиву, указывает на неправильный адрес
- 26. указатель не указывает
- 27. Как изменить указатель на void через функцию?
- 28. Initialize недействительным указатель указывает на массив
- 29. Как вернуть указатель на позицию массива в массиве, на который указывает void *?
- 30. Удаление памяти, на которую указывает пустой указатель
* Когда что-то отбрасывается в пустоту, значение становится NULL. * Требуется подтверждение/цитата ;-) –
Указатель 'void' далеко не бесполезен. В отличие от «типизированных» указателей, он позволяет программисту законно решать, на что он указывает. Однако легитимность этого, конечно, полностью зависит от программиста. –
приводит к изменению значений, как они интерпретируются в этом контексте ... он может вызывать инструкцию о значении переменной, чтобы изменить ее на двойную, например, но исходное значение не будет изменено. –