Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
В шаблонном классе написал простую функцию, которую вызываю для объекта специфицированного типом unsigned int32_t Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В файле Memory.cpp: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Почему указатель превращается в обычный int??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 12:15 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQL// Memory до выполнения этой строки имеет тип unsigned int*, а сразу после выполнения- unsigned int и значение 0!!! Почему указатель превращается в обычный int??? Это баг в твоём QtCreator в дебаге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 12:20 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
NekZAlekseySQL// Memory до выполнения этой строки имеет тип unsigned int*, а сразу после выполнения- unsigned int и значение 0!!! Почему указатель превращается в обычный int??? Это баг в твоём QtCreator в дебаге У меня эта проблема получается как в отладке, так и в релизе, причем для GCC и Intel- компиляторов с ключом -O0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 14:39 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, Я имел в виду, что у QtCreator'а есть такой баг, когда ты в нём дебажишь, внезапно у переменной может поменяться тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 14:49 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 14:56 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
NekZAlekseySQL, Я имел в виду, что у QtCreator'а есть такой баг, когда ты в нём дебажишь, внезапно у переменной может поменяться тип. Так я отписался, что это не только в дебаге. У меня программа из- за этого вываливается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 14:59 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
Какие-то ужастики на ночь. Всю жизнь в C указателей можно было спокойно друг другу присваивать. Что там может портится? просто копирование 32 (64) бит из одной переменной в другую. Но вполне возможно, что переменная портится где-то в другом месте. Если есть простой тест кейс, на котором ошибка воспроизводится, то можно было бы разговаривать. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 15:51 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, а зачем так много бессмысленных переменных и присваиваний в функции allocator::AllocationMemory? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 19:17 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
egorychAlekseySQL, а зачем так много бессмысленных переменных и присваиваний в функции allocator::AllocationMemory? Чтобы понять в какой операции происходит ошибка. Я, кстати, пробовал static_cast- таже ошибка. Запустился под сатанинской Win10: Qt Creator c MinGW32 показывает такой же фокус. Так что хочу попробовать в Visual Studio с компиляторами Intel и MSVC, но боюсь, что темная сторона силы окончательно поглотит меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 19:39 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQLбоюсь, что темная сторона силы окончательно поглотит меня.тяжело искать чёрную кошку в тёмной комнате, особенно когда её там нет)) но мы всё равно будем)) ошибка у тебя не здесь, очевидно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 22:44 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЧтобы понять в какой операции происходит ошибка. Я, кстати, пробовал static_cast- та же ошибка.А смысл? Приведение типа в си-стиле, это, по сути и есть static_cast. Для приведения от void* к другому типу указателя, пробуй reinterpret_cast. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 09:42 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQLNekZAlekseySQL, Я имел в виду, что у QtCreator'а есть такой баг, когда ты в нём дебажишь, внезапно у переменной может поменяться тип. Так я отписался, что это не только в дебаге. У меня программа из- за этого вываливается. Твоя программа вываливается НЕ ИЗЗА этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 13:36 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВ шаблонном классе написал простую функцию, которую вызываю для объекта специфицированного типом unsigned int32_t Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В файле Memory.cpp: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Почему указатель превращается в обычный int??? Сама идея тоже какая-то дурацкая. Мы выделяем память под тип type? Но внезапно другого размера, чем sizeof(type) ! О как, назло всем врагам! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 13:38 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
MasterZivСама идея тоже какая-то дурацкая. Мы выделяем память под тип type? Но внезапно другого размера, чем sizeof(type) ! О как, назло всем врагам! Это я уже упростил до предела, чтобы найти ошибку. На самом деле выделяется под массив элементов типа type, так что в реальной задаче есть перемножение размера на количество элементов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 22:12 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
MasterZivТвоя программа вываливается НЕ ИЗЗА этого. Из- за неправильного приведения На второй итерации выделяется 0 байт памяти и программа вываливается при обращении к этому участку. Так что из- за этого. Другой вопрос, что ошибка скорее всего сидит в другом месте, в уже выполненном коде, который так необычно себя проявляет. Я пробовал искать Intel Inspector- ом, но пока безрезультатно. Какие есть инструменты поиска ошибок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 07:32 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQLКакие есть инструменты поиска ошибок? В лог писать или в консоль. После каждой строчки вставляешь вывод нужных переменных, потом изучаешь. ИМХО по симптомам похоже что у тебя какой-то код память портит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 07:37 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
+ Причем самое прикольное, когда я закомментировал строки с выделением памяти (и чтением из файла в эту память), то программа отлично работает (правда с нулевыми данными) без ошибки. Intel Inspector продолжает писать о внутренней ошибке и с этой ошибкой просит обратиться к разработчикам продукта (т.е. к Intel). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 07:47 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQL+ Причем самое прикольное, когда я закомментировал строки с выделением памяти (и чтением из файла в эту память), то программа отлично работает (правда с нулевыми данными) без ошибки. Попробуй закамментить обработку, т.е. оставить только выделение памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 07:53 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
Если сам найти не можешь в чем проблема: попробуй сделать небольшой проект, повторяющий твою ошибку и сюда выложи. Нужен именно проект, а не куски кода, чтобы запустить можно было. PS Обычно в процессе написания демонстрации проблемы приходит понимание ее причины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 08:00 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, ошибка найдена! Чтобы сместиться по куску памяти я складывал с указателем Data (типа type) не количество элементов а размер: Код: plaintext 1. 2. Поэтому программа выходила за пределы памяти. А отладчик при хорошей работе программы так и продолжил показывать вместо указателя какие- то непонятные значения int (что меня сбило с толку). Насколько я понимаю это проблема дебугера GDB, но intel parallel studio, к сожалению, содержит также только GDB (похоже у них нет собственного отладчика). Так что заменить чем- то другим не получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 08:48 |
|
||
|
Ошибка: при приведении типа указателя теряется указатель!
|
|||
|---|---|---|---|
|
#18+
AlekseySQLMasterZivТвоя программа вываливается НЕ ИЗЗА этого. Из- за неправильного приведения На второй итерации выделяется 0 байт памяти и программа вываливается при обращении к этому участку. Так что из- за этого. Другой вопрос, что ошибка скорее всего сидит в другом месте, в уже выполненном коде, который так необычно себя проявляет. Я пробовал искать Intel Inspector- ом, но пока безрезультатно. Какие есть инструменты поиска ошибок? Отладчик, отладочная печать, логи, голова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 13:32 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2017856]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 295ms |
| total: | 458ms |

| 0 / 0 |
