[過去ログ] 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
880
(5): デフォルトの名無しさん [] 2017/07/09(日) 16:06:32.28 ID:EeQkMvgZ(1/4) AAS
ポインタそのものにオブジェクトってできるんでしょうか?
例えば、配列arrayのアドレスをポインタpで、ポインタpのアドレスをポインタpのポインタppで調べたんですが、
int array[3];
int *p = array;
int **pp = &p;
for(i = 0; i < 3; i++)
{
printf("&array[%d] : %d : %d\n", i, &array[i]);
}
&array[0] : 2293472
&array[1] : 2293476
&array[2] : 2293480
&p[0] : 2293472
&p[1] : 2293476
&p[2] : 2293480
&pp[0] : 2293468
&pp[1] : 2293472
&pp[2] : 2293476
ppが参照しているpのオブジェクトの位置が、arrayのオブジェクトのアドレスと全く同じ位置にあります。
1つのアドレスが2つのオブジェクトをもてるのか、ポインタ自体にオブジェクトは生成されないのか
他の要素でそうなってるのかわかりません。どなたか回答宜しくお願いいたします。
881
(2): ◆QZaw55cn4c [sage] 2017/07/09(日) 16:13:17.36 ID:VF1qtZ3L(1) AAS
>>880
その出力を一挙に得られるプログラムを示せ,アドレスはプログラムの実行ごとに変わる可能性がある
882
(1): デフォルトの名無しさん [sage] 2017/07/09(日) 16:20:52.70 ID:v/7piv3Y(1) AAS
>>880
pとarrayは異なるオブジェクトだから確認方法が間違ってる
889
(1): デフォルトの名無しさん [sage] 2017/07/09(日) 17:16:44.02 ID:Uu/MlKNR(1) AAS
>>880
> &pp[0] : 2293468
これはpのアドレス
> &pp[1] : 2293472
> &pp[2] : 2293476
pp[1], pp[2]は存在しないからアクセスしちゃダメ
たぶん
2293464: pp
2293468: p
2293472: array[0]
2293476: array[1]
2293480: array[2]
みたいなメモリ割り当てになってるんだろうな
907
(2): ◆QZaw55cn4c [sage] 2017/07/12(水) 07:26:19.94 ID:9q9UgJkW(1) AAS
>>880
ん、最初にもどってメッセージを書くとすれば、こうなるかな

>ポインタそのものにオブジェクトってできるんでしょうか?
私が意味を取り違えているかもしれないが、「できない」
ポインタを取得したからといって、オブジェクトが生えてくることはない
あくまで、先にオブジェクトを確保した上で、それに対してポインタを設定する手順をとる

>例えば、配列arrayのアドレスをポインタpで、ポインタpのアドレスをポインタpのポインタppで調べたんですが、
array を確保しているので、p は array 確保分(p 〜 p + 3)だけプログラムとして意味がある。
pp は p 一個分だけ意味がある。すなわち *pp = p、でも pp[1]= *(pp + 1) は確保していない領域を指すのでこの表現は使ってはいけない

&pp[1] と書くとなにがしかのアドレスを生成するが、それは使えない
アドレスを生成できるからといって、その領域が意味のあるものとは限らない

>>881 では意味のないことを求めてしまいごめんなさい
929
(1): ◆QZaw55cn4c [sage] 2017/07/13(木) 06:27:44.49 ID:NDMOLt7F(1) AAS
>>927
927(1): デフォルトの名無しさん [sage] 2017/07/13(木) 00:31:49.82 ID:/oMuxl/G(1/2) AAS
>>907
>pp[1]= *(pp + 1) は確保していない領域を指すのでこの表現は使ってはいけない
Cの規格をよく読み直したらそうでもなかった

>>880
int **pp = &p;
でpp[1] は書いちゃだめだろう?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.046s