ページ 11

アドレス

Posted: 2013年2月06日(水) 13:25
by Cユーザー
領域128バイトをもったメモリの先頭アドレス
char* pがあったとすると

この先頭アドレスから64バイト先の
アドレスを取得する方法は以下で正しいですか?

char*p2=p+64;

Re: アドレス

Posted: 2013年2月06日(水) 14:20
by softya(ソフト屋)
charと言う型に限定すれば、64バイト先で合っています。
他の型だと64バイトでは無くなる可能性があります。
→ ポインタ演算

Re: アドレス

Posted: 2013年2月06日(水) 15:08
by Cユーザー
すいません。

先頭アドレスを覚えていて、
ポインターを64バイト進めて覚えている先頭アドレス
を使って最初の位置に戻るプログラムは
が教えてもらえますか?

ビルドえらあになりまくりで混乱中です

re: アドレス

Posted: 2013年2月06日(水) 15:10
by Cユーザー
すいません
ちょっと日本語文章になりました

Re: アドレス

Posted: 2013年2月06日(水) 15:10
by Cユーザー
おかしいな。。

変な日本語文章になりました
すいません

Re: アドレス

Posted: 2013年2月06日(水) 15:18
by softya(ソフト屋)
何をしたいのか分かりませんが、複数のポインタを管理するならポインタ配列とかポインタリストを使ったほうが安全度の高いプログラムを作れます。

Re: アドレス

Posted: 2013年2月06日(水) 15:23
by box
Cユーザー さんが書きました: ビルドえらあになりまくりで混乱中です
そのソースコードを貼ってください。

Re: アドレス

Posted: 2013年2月06日(水) 15:27
by Cユーザー
ポインターを動かしたり初期位置に戻したりする勉強です
これが理解できたら次のステップにいきます

Re: アドレス

Posted: 2013年2月06日(水) 15:46
by Cユーザー
ソースコードといっとも
char p2=&p;//初期位置アドレス取得

とかやって型エラーになり、型なんだっけ。。
とかやってました

この辺が全然わかってない感じです

Re: アドレス

Posted: 2013年2月06日(水) 15:48
by softya(ソフト屋)
Cユーザー さんが書きました:ソースコードといっとも
char p2=&p;//初期位置アドレス取得

とかやって型エラーになり、型なんだっけ。。
とかやってました

この辺が全然わかってない感じです
全部char型のポインタとして操作することはオススメ出来ません。
元々の型のポインタを使って下さい。

Re: アドレス

Posted: 2013年2月06日(水) 15:54
by box
Cユーザー さんが書きました: char p2=&p;//初期位置アドレス取得
たぶん、

コード:

    char *p2 = p;    //初期位置アドレス取得
こういうことがしたかったのではないでしょうか。

コード:

    char  p2=&p;//初期位置アドレス取得
このコードでは、左辺はchar型、右辺はchar **型となり、
両辺の型が異なっています。

Re: アドレス

Posted: 2013年2月06日(水) 17:38
by ISLe
前の質問と合わせると、とても危険でまったく意味のないことをやろうとしている感じがします。

Re: アドレス

Posted: 2013年2月08日(金) 00:12
by Cユーザー
色々考えてみたところ勘違いしていました。

ありがとうございました