У меня возникла странная проблема с указателями. Я создаю дерево kd для трассировки лучей, а во время функции BuildKDtree я печатаю root-> left и root-> right, и я получаю правильные значения для различных атрибутов, хранящихся на узле. В тот момент, когда я заполняю этот код, а затем пытаюсь пересечь дерево, используя указатель исходного корня, значения root-> left и root-> right содержат мусор и сбой кода! Любые предложения относительно того, что может быть причиной этого? Я мог бы вставить код, если это необходимо, но его довольно неуклюжий.Указатель, дающий значения мусора даже после установки
ответ
Что такое подпись функции BuildKDtree
? Возможно ли, что где-то есть указатель, но на самом деле нужен указатель на указатель? Просто пытаюсь угадать :)
Спасибо, arun, на самом деле я думал, что тоже, но я думаю, что его решена сейчас. – Manish
Скорее всего, что:
- Когда вы выделить для корня структура данных, вы на самом деле не получить действительный адрес.
- Некоторые другие ваши коды (или рамки, с которыми вы работаете) выписываете границы структуры.
Вообще говоря, второй вариант менее вероятен из-за SEGFAULTs, но это не гарантируется, если вы фактически не запустили предыдущие границы страниц. Звучит как неприятная проблема для отладки, попробуйте valgrind :)
Не могли бы вы проверить, действительно ли этот указатель?
Возможно, вы что-то вроде этого:
Node n = 0;
n->doThat();
В данном случае это не будет иметь никакого действительного левый и правый указатели.
Спасибо, ребята, указав некоторые возможные условия. Я нашел ошибку. На самом деле я не выделял динамическую память в функции BuildKDtree. Так внутри все работало отлично. Но когда я вернул переменные, они были уничтожены и, следовательно, ошибка.
- 1. Значения мусора печатаются даже после нулевого символа
- 2. textview, дающий нулевой указатель
- 3. ADO.NET отсутствует даже после установки
- 4. xlCellTypeLastCell, дающий значение для установки
- 5. nGModelController. $ Render не вызывается даже после установки значения через $ setViewValue
- 6. Указатель класса C++, дающий ошибку
- 7. std :: list.begin(), дающий нулевой указатель
- 8. раздражающая ошибка libv8 даже после успешной установки
- 9. удалить указатель после возвращаемого значения
- 10. получение ошибки даже после установки свойства JAVA_HOME
- 11. Ошибка Microsoft.Office.Interop даже после установки PIA
- 12. Изменения фокусировки даже после установки e.Handled = true
- 13. Модуль python не найден даже после установки
- 14. Python: paramiko ImportError даже после установки pip
- 15. Не удалось импортировать даже после установки пакетов
- 16. Xamarin не работает даже после полной установки
- 17. Nginx 403 Запрещено даже после установки разрешения
- 18. Протокол не работает даже после установки делегата
- 19. npm не устанавливается даже после установки узла
- 20. Значения мусора после определенного количества записей
- 21. программа, возвращающая значения мусора
- 22. HashCode, дающий отрицательные значения
- 23. CGPointApplyAffineTransform, дающий отрицательные значения
- 24. Textarea исчезает после установки значения
- 25. Значения мусора в массиве указателей
- 26. Java string.hashcode(), дающий разные значения
- 27. $ _REQUEST показывает значения мусора
- 28. FQL, дающий NoIndexFunctionException даже при индексировании столбца
- 29. проверить поле после установки значения через jQuery
- 30. установки указателя на указатель
Возможно, это просто недостающее назначение исходному корневому указателю или что-то в этом роде. Если можно, отправьте код. Хорошая идея сделать копию и попытаться обрезать ее до абсолютного уровня. –