ポインタのポインタについて
VisualC++2008
の、Windowsフォームアプリケーションを使用しています。
自作クラスの中に組み込む線形リスト的なものを、後で移動したりする場合実体のコピーをしなくて済むよう
今、「アドレス」を格納する配列を作りたいです。
しかし、ポインタのポインタに対して色々実験してみたのですが
どうもあと一歩ぐらいのところで手が届きません
フォームのイベントで、試しに以下のように書いてみると
Text = "";
char *a[8], b =7 ,*c = new char[7], i =7;
while (i) { c[i] = --i; a[i] = &c[i]; }
a[7] = &b;
while (i<8) Text += *(*a+i++);
delete c;
これを実行したとき
フォームのTextが
「01234567」
となってほしいのですが
「0123456-3」
となってしまいます。
試してみたのですが
その直後にbを調べると、やはりちゃんと7になっており
また
a[7] と &b をifおよび==を用いて比較してみても
同じになっています。
なお、この-3というのはどうも、解放処理の後でそこにアクセスした場合はこの場合
「-35」
となり、確保中の時に代入してないアドレスにアクセスすると
「-3」
となるような感じです。
このような、連続していないアドレスへの参照を配列化しておいて取り出す事は出来ないのでしょうか?
お礼
ありがとうございます。