Я работал над этим, и я не могу заставить его работать должным образом.Я возвращаю последнее значение списка указателей, и я хотел бы напечатать его, но он печатает очень случайное число.Я предполагаю, что это адрес памяти указателя, но когда я разыменовываю его, мой вывод все равно делает то же самое.
Мой указатель - это список указателей, например: 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 << * totry; </p>
Вот так я объявляю свой список указателей
class ptrList
{
public:
std::list<value_type> listOfValues;
std::list<*int> pointerlist;
Я заполняю свой список указателей внутри функции "add" и делаю это так:
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.