РЕДАКТИРОВАТЬ: Я обнаружил ошибку: я не инициализировал массив с размером. вопрос можно закрыть.
У меня есть класс V
, а другой класс N
. Объект N
будет иметь массив указателей на объекты класса V
(скажем, V **vList
). Итак, N
имеет такую функцию, как
V **getList();
Теперь в какой-то функции других классов или просто в функции драйвера, если я скажу, что V **theList = (N)n.getList();
Q1: theList
будет указывать на 1-й элемент массива? Учитывая, что размер массива известен, могу ли я выполнить цикл с индексом i
и сказать V *oneV = *vList[i]
? Пожалуйста, поправьте меня, если то, что я делаю выше, неправильно.
Я использовал отладчик для отслеживания всего процесса выполнения моей программы, но обнаружил, что после использования V *oneV = vList[i]
значения указателей в массиве vList
были такими же, как когда они были созданы, но если я следую за указателем туда, куда он указывает, объект исчез. Я предполагаю, что это может быть причиной того, что я получаю ошибку сегмента или ошибку шины. Может ли это быть так? ПОЧЕМУ я «потерял» объект на другом конце указателя? Что я сделал не так?
и да, я работаю над школьным заданием, поэтому я не хочу распечатывать свои коды, я хочу закончить это сам, но мне нужна помощь в поиске проблемы. Я думаю, что мне все еще нужно объяснение по массиву указателей. Спасибо