Этот вопрос связан с мой предыдущий вопрос. Я использовал код ниже, чтобы проверить значения в streambuf
объект, связанный с cout
, Используя VS2010 IDE, я вижу несколько членов в этом классе. Может ли кто-нибудь указать мне, кто из этих членов указывает на нулевой буфер cout в памяти?
#include <iostream>
int main()
{
std::streambuf* p = std::cout.rdbuf();
}
редактировать: Глядя на streambuf
Заголовочный файл можно найти следующие частные члены в basic_streambuf
учебный класс:
_Mutex _Mylock; // thread lock
_Elem *_Gfirst; // beginning of read buffer
_Elem *_Pfirst; // beginning of write buffer
_Elem **_IGfirst; // pointer to beginning of read buffer
_Elem **_IPfirst; // pointer to beginning of write buffer
_Elem *_Gnext; // current position in read buffer
_Elem *_Pnext; // current position in write buffer
_Elem **_IGnext; // pointer to current position in read buffer
_Elem **_IPnext; // pointer to current position in write buffer
int _Gcount; // length of read buffer
int _Pcount; // length of write buffer
int *_IGcount; // pointer to length of read buffer
int *_IPcount; // pointer to length of write buffer
locale *_Plocale; // pointer to imbued locale object
я верю _Pfirst
это адрес, который я ищу, и он NULL, как и ожидалось.
Задача ещё не решена.
Других решений пока нет …