0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 32
|
||||||
1 | ||||||
Особенность указателей12.07.2020, 18:24. Показов 3972. Ответов 66
Метки нет (Все метки)
Всем привет, есть вот такой код:
0
|
12.07.2020, 18:24 | |
Ответы с готовыми решениями:
66
Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си) Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей |
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
13.07.2020, 12:02 | 21 |
Это точно UB в GCC. (Про необходимость явно делать каст от целого к указателю я уже и не пишу)
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
13.07.2020, 12:03 | 22 |
Поведение его кода определено, потому что там нет разыменования указателя. А вот получение значения разыменованного указателя , как в твоём параграфе и сказано, является неопределённым поведением, и это значит что зависит не только от реализации компиляторов, но и от текущего состояния системы/памяти / проч.
0
|
18843 / 9842 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|
13.07.2020, 12:05 | 23 |
Вообще в его параграфе сказано про значение указателя, а не про значение указываемого объекта/указываемой памяти.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
13.07.2020, 12:43 | 24 |
ты отдаёшь себе отчет в том, что пишешь:
"абсолютно корректно" в отношении фрагмента кода, который вообще даже не компилируется?
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
13.07.2020, 12:53 | 25 |
Как ты вообще умудрился получить такой результат, на каком компиляторе?
https://wandbox.org/permlink/SncvcoFi7mSFRtn3
0
|
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 32
|
|
13.07.2020, 13:02 [ТС] | 26 |
oleg-m1973, Который с vs идет
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
13.07.2020, 13:14 | 27 |
У тебя, видать, указана опция компилятора /sdl
Добавлено через 7 минут Не стоит на неё рассчитывать
1
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
||||||
13.07.2020, 13:15 | 28 | |||||
Речь была о последней строке того кода. Конечно же нужно преобразование типа
0
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
13.07.2020, 13:19 | 29 |
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
13.07.2020, 13:37 | 30 |
argcargv, указатель с адресом. Который можно сравнивать с другими указателями, что собственно в коде и есть.
0
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
13.07.2020, 13:39 | 31 |
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
13.07.2020, 14:15 | 32 |
0
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
13.07.2020, 14:21 | 33 |
TRam_, что это? Я спрашивал про
reinterpret_cast<char*>(0x1234) .До сравнения ещё дожить надо.
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
13.07.2020, 14:36 | 34 |
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|||||||||||||||||||||
13.07.2020, 14:42 | 35 | ||||||||||||||||||||
и не пиши
есть куча вещей где периферия лежит по конкретному адресу например таймер 2 у stm-ки TIM2
и файлик то не самописный
0
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
13.07.2020, 14:44 | 36 |
0
|
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
13.07.2020, 15:10 | 37 | |||||
ValeryS, ну так
TIM_TypeDef * Всё остальное числовые константы.
0
|
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
13.07.2020, 15:43 | 39 |
Не совсем так. Адрес численно равен числу, да, но по сути TIM2 - это адрес структуры
TIM_TypeDef , а не просто число. И без приведения работать не будет.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
13.07.2020, 15:47 | 40 |
это - некорректное высказывание.
адрес можно преобразовать в число. однако сам адрес при этом числом не является.
0
|
13.07.2020, 15:47 | |
13.07.2020, 15:47 | |
Помогаю со студенческими работами здесь
40
Различия указателей char* от указателей других типов Как обойтись без указателей и указателей на указатель? Создание массивов указателей на массивы указателей Особенность циклов в c++ Добавление нового указателя в конец массива указателей, удаление указанного элемента, добавление указателей Особенность объявления функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |