Вопросы с тегом «pointers»

Тип данных, который «указывает» на другое значение, хранящееся в памяти. Переменная-указатель содержит адрес памяти некоторой другой сущности (переменная или функция или другая сущность). Этот тег следует использовать для вопросов, связанных с использованием указателей, а не ссылок. Наиболее распространенными языками программирования, использующими указатели, являются C, C ++, Go и языки ассемблера. Используйте определенный языковой тег. Другими полезными тегами являются метод, функция, структура и т. Д., Описывающие использование указателя.

4
Является ли void * function () указателем на функцию или функцию, возвращающую void *?
Я запутался в значении void *function(). Это указатель на функцию или возвращаемую функцию void*? Я всегда использовал его в структурах данных как рекурсивную функцию, возвращающую указатель, но когда я увидел код в многопоточности ( pthread), было одно и то же объявление функции. Теперь я запутался в чем разница между ними.

3
Есть ли в C эквивалент std :: less из C ++?
Недавно я отвечал на вопрос о неопределенном поведении p < qв C, когда pи qесть указатели на разные объекты / массивы. Это заставило меня задуматься: <в этом случае C ++ имеет такое же (неопределенное) поведение , но также предлагает стандартный шаблон библиотеки, std::lessкоторый гарантированно возвращает то же самое, что и …

1
Какова семантика перекрывающихся объектов в C?
Рассмотрим следующую структуру: struct s { int a, b; }; Обычно 1 , эта структура будет иметь размер 8 и выравнивание 4. Что если мы создадим два struct sобъекта (точнее, мы запишем в выделенное хранилище два таких объекта), причем второй объект будет перекрывать первый? char *storage = malloc(3 * sizeof(struct …

1
Является ли разница между двумя экземплярами constexpr указателей __func__ все еще constexpr?
Это действительный C ++? int main() { constexpr auto sz = __func__ - __func__; return sz; } GCC и MSVC считают, что все в порядке, Clang считает, что это не так: Compiler Explorer . Все компиляторы соглашаются, что с этим все в порядке: Compiler Explorer . int main() { constexpr …

1
Может ли указатель на неполный тип быть неполным?
Может int (*)[]быть неполного типа? C 2018 6.2.5 1 говорит: В различных точках в единице перевода тип объекта может быть неполным (без достаточной информации для определения размера объектов этого типа) или полным (имеющим достаточную информацию). Таким образом, кажется, что если размер типа известен, тип завершен. 6.2.6.1 28 указывает, что определенные …

4
Как работает sizeof с разыменованием указателя на массив?
Здесь у меня есть указатель ptrна массив arrиз 4 целых чисел. ptrуказывает на весь массив. ptr[0]или *ptrуказывает на первый элемент массива, поэтому добавление 1 к ptr[0]дает адрес второго элемента массива. Я не могу понять, почему использование sizeof(ptr[0])дает размер всего массива, 16 байтов, а не размер только первого элемента, 4 байта, …
9 c  arrays  pointers 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.