私は非常に基本的な質問がありますが、私はちょうどそれの周りに私の頭を得ることはできません。 文字列内の各文字のメモリアドレスを取得する方法がわかりました。例えば文字列からメモリアドレスを取得する方法は?
:
string str("Test");
cout << size(str) << endl;
私は、この文字列が4バイトであるため、これは、この4を返します知っているが、どのようにすることができます私は、出力画面上の各バイトのメモリ住所がを?
私はこの
string s = "abcd";
string::iterator pos;
for (pos = s.begin(); pos != s.end(); ++pos) {
cout << &pos << endl;
}
cin.get();
return 0;
を試してみました。しかし、これは出力されます:
00AFFB8C
00AFFB8C
00AFFB8C
00AFFB8C
しかし、それはのようにいろいろ書いにする必要がdoesntの:だから誰もがアイデアを持っているん
00AFFB8C
00AFFB8D
00AFFB8E
00AFFB8F
私がここで間違っているのは何ですか?
同じ場所に同じアドレスが格納されているため、同じアドレスが表示されます。 – Shravan40
ああ、間違っている。 'size(str)'は、 'std :: string'オブジェクト内のテキストのサイズではなく、' std :: string'オブジェクトのサイズを返します。 'std :: string :: length()'を試して文字列の長さを取得してください。 –
@ThomasMatthews - 'std :: size(c)'は 'c.size()'を返します。あなたは 'sizeof'を考えているようです。 –