Итак, позвольте мне начать с ошибки. Я получаю эту ошибку сегм при запуске GDB:Ошибка ошибки сегментации в 0x00000000
#0 0x00000000 in ??()
#1 0x0804aacc in find_closest_object (list=0x8052928, base=0xbffff148,
dir=0xbffff130, last_hit=0x0, retdist=0xbffff0f0) at raytrace.c:34
#2 0x0804ab96 in ray_trace (model=0x80528f0, base=0xbffff148, dir=0xbffff130,
pix=0xbffff160, total_dist=0, last_hit=0x0) at raytrace.c:80
#3 0x0804a99a in make_pixel (model=0x80528f0, x=0, y=0) at image.c:29
#4 0x0804aa09 in make_row (model=0x80528f0, y=0) at image.c:47
#5 0x0804aa53 in image_create (model=0x80528f0, out=0x8052788) at image.c:69
#6 0x08048aed in main (argc=3, argv=0xbffff2b4) at main.c:30
Так в основном, я получаю эту неизвестную ошибку с 0x00000000 в ??. Что на Земле это означает? На строке 34 на рейтрасе говорится:
dist = obj->hits(base, dir);
Любая подсказка вообще по какой проблеме может быть? Я мог бы разместить больше, если нужно, но не уверен, что именно нужно. Спасибо за помощь!
EDIT: last_hit должен быть NULL, так что это не так.
Нам нужно больше кода для определения проблемы. – 0x499602D2
Любая идея, какой файл вам нужно будет видеть, судя по ошибке? Все затронутые файлы? Я могу, но это много кода. – user2781823
Это означает, что вы меняете указатель NULL. Что означает * на самом деле * означает, что вам нужно пересмотреть свой алгоритм, и если вы все еще думаете, что с ним ничего не случилось, снова запустите свою программу в отладчике с помощью -g и найдите, откуда ваша ошибка. Трассировка стека указывает, где проблема. так что смотри тяжелее. один шаг, если дело доходит до него. Я предполагаю, что 'obj' - NULL. – WhozCraig