Я работаю над этим, и я не могу заставить это работать должным образом. Я возвращаю последнее значение списка указателей, и я хотел бы его распечатать, но он печатает очень случайное число. Я предполагаю, что это адрес памяти указателя, но когда я разыменовываю его, мой вывод по-прежнему делает то же самое.
Мой список указателей — это список указателей, например: list<int*> pointerList
Например, это мой метод, возвращающий:
int* end() { return (pointerList.back()); }
Вот как я это называю.
int* totry = ca.end();
cout << *totry;
Это печатает адрес памяти, а не значение. У кого-нибудь есть идеи, как это решить?
Заранее спасибо!
РЕДАКТИРОВАТЬ: вот на что указывают указатели int: у меня есть список значений, таких как [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
, и у меня есть список указателей, которые указывают на разные части этого списка, например:
[0,4,8,12]
У меня есть код: int* end() { return (pointerList.back()); }
в моем файле заголовка и вызов в моем файле .cpp:
int* totry = ca.end(); cout ‹‹ *попробовать;
Вот как я объявляю свой список указателей
class ptrList
{
public:
std::list<value_type> listOfValues;
std::list<*int> pointerlist;
Я заполняю указатели списка внутри функции «добавить» и делаю это так:
int lstsqrt = 4;
for (int a = 1; a < lstsqrt; a++)
{
int endptr = a + (int)lstsqrt;
pointerlist.push_back((&*listOfValues.begin() + endptr)); //( (lstsqrt - 1) + a) );
}
И это мой метод end()
int* end() {return (pointerlist.back());}
Затем это передается моей переменной toTry.
int*
в вашем списке? Покажите нам больше кода, пожалуйста. - person Greg Hewgill   schedule 11.02.2012pointerList
и на чтоpointerList.back()
возвращает указатель? - person Seth Carnegie   schedule 11.02.2012totry
, как вы сказали, потому чтоtotry
просто появляется при вызове функции. - person Seth Carnegie   schedule 11.02.2012pointerList.back
- person Seth Carnegie   schedule 11.02.2012