ポインタのポインタへアクセスする方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
MNS

ポインタのポインタへアクセスする方法

#1

投稿記事 by MNS » 16年前

ポインタのポインタについて質問です。
たとえば、
struct TMP
{
	int tmp;
};
という構造体があるとします。
ここに、
TMP *ptmp;
というポインタがあります。
そして、
TMP** Reptmp()
{
	return &ptmp;
}
という、ptmpのアドレスを返す関数があるとします。

このとき、Reptmp()がポインタを返す関数なら、
Retmp()->tmp
のようにアクセスすることが出きるのですが、
Reptmpがポインタのポインタであるため、どのようにアクセスすればいいのか分かりません。
どなたか回答お願いします。

Blue

Re:ポインタのポインタへアクセスする方法

#2

投稿記事 by Blue » 16年前

TMP** pp = Retmp();
TMP* p = *pp;
int n = p->tmp;

であるから、

int n = (*Retmp())->tmp;

ということになります。

TOMONORI

Re:ポインタのポインタへアクセスする方法

#3

投稿記事 by TOMONORI » 16年前

Reptmp()からの戻り値をいったん何らかの変数に格納するのも手だと思います。

MNS

Re:ポインタのポインタへアクセスする方法

#4

投稿記事 by MNS » 16年前

>Blueさん
やり方が悪いのか、なぜか構文エラーになってしまいますね・・。
回答ありがとうございます。

>TOMONORIさん
仰られた方法で出来そうです。
どうもありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る