• ベストアンサー

Wポインタを教えて下さい!

punchan_jpの回答

回答No.1

まず、ポインタを使ったリスト関数というのは何を指しているので しょう?リスト構造のことでしょうか?それを扱う関数のことでしょ うか?それとも全然別物? それから、Wポインタといわれても、何のことかよくわかりません。 双方向リスト構造のことでしょうか? double 型へのポインタってことではなさそうですが… 用語が正確でないと、何を答えていいかもわからなくて答えづらい です。

meal
質問者

お礼

お返事ありがとうございます。 wポインタですが、ポインタのポインタと呼ばれているものです。 リスト構造はポインタを使っていますが、 ポインタのポインタを使ってリスト構造を実現できるそうなのですが、 普通のポインタを使ったリスト構造とどこが違うのでしょうか? わざわざポインタのポインタを使う利点は? というようなことがわからないのですが・・・。 どうぞよろしくお願いします。

関連するQ&A

  • EM・ONEのようなポインタをW-ZERO3で

    EM・ONEのようなポインタをW-ZERO3で使うことはできますか? (W-ZERO3向けのものはありますか) また、その方法はどうなんでしょうか?

  • 関数ポインタの利点

    こんにちは。 C言語初心者ですが今勉強中です。 その中でポインタについては理解できたのですが、 関数ポインタの利点、使うべき所などが理解できません。 ポインタの基本は理解しています。 値渡し、アドレス渡しも理解しています。 関数ポインタを使うと何がいい、またはどんなとき使わなければならないのか 教本を読んでいてもさっぱりわかりません。 サンプルプログラムを打っても何のために使ってるのかわからないです。 どなたか教えていただけませんでしょうか? よろしくお願いします。

  • Voidポインタで受け取った変数の型を調べる方法

    あるライブラリの関数を利用しようとしたのですが、その関数の引数にVoidポインタがあり、どういう型のデータを格納したのかわかりません。このポインタのアドレスに格納されたデータの型を調べる関数なり方法なりというのはあるのでしょうか。 Voidポインタというのは型を問わずに受け取れるというのは利点ですが、受け取ったものがあらかじめなんだかわからない場合はどうするのでしょうか。よろしくお願いします。

  • voidポインタ

    曖昧な質問になってしまいますが、voidポインタを使うことによって どのような利点があるのかが解りません、あらゆるポインタ型から キャスト可能だということは解るのですが、具体的な使用方法がわかりません よろしくお願いします。

  • ポインタで詰まりました;

    こんばんわ、私は今仕事の合間をぬって独学でCとPerlを学んでいます。 まだやりはじめてから程無いのですが、ポインタに入ったところでつまづいてしまいました;(使い方がわからなくてパニックに; 以下の4つの問題、ポインタを使ったらどうやればいいのか教えてもらえないでしょうか? 1) 文字列の長さを求める関数を、ポインタを使って作成。 2) 文字列を比較する関数を、ポインタを使って作成。 一致の際(0)不一致の際は(1)を返す 3) 文字列中に含まれる、指定した文字の個数を求める関数を、ポインタを使って作成。 「what is this.」の場合、指定文字が「w」の場合は個数1を返す 4) 文字列中に含まれる単語の個数(スペースで区切られた部分)を求める関数を、ポインタを使って作成。 「ehat is this.」の場合、個数は3を返す。 私が今どのくらいの実力があるかといいますと、ほんと初心者同然です。 なので出来るだけ分かりやすく書いてくれると嬉しいです; よろしくお願いします(ノД`

  • ポインタのポインタが引数にある関数の使い方。

    ポインタのポインタが引数にある関数の使い方。 現在、このポインタのポインタが引数にある関数の動きがわからず困っています。 int test(int ** head) { int * pTail = (int *)*head; pTail = pTail + 1; } もし、この関数を呼び出して使用した場合どのような動きをするのでしょうか? int * comm_msg; これをグローバルポインタ変数として宣言させて、 test((void **)&comm_msg); このように呼び出したとした場合とさせていただきます。

  • 構造体配列のポインタについて(H17春基本情報試験C言語問題)

    平成17年春基本情報技術者試験の午後問題の問6について、質問があります。 設問dの答えがイなのですが、これがどうしても理解できません。 関数「int word_width(char *str, CHARPROF *char_list)」の「char_list」は構造体の配列のポインタとして宣言されています。 そしてこの関数内の処理を問う穴埋めdの解答は「*str != char_list[idx].char_p」となっています。 char_listは構造体配列のポインタなので、「char_list[idx]->char_p」あるいは「(*char_list[idx]).char_p」となるのでは?と思ったのですが、選択肢にもそれはありません。 char_list配列の先頭アドレスの中身を見るときは「char_list->char_p」となっても、要素番号がつくと、ポインタとはみなさなくなって「char_list[0].char_p」となるのでしょうか? だとするとポインタ宣言したchar_listとポインタ宣言しなかった場合(「CHARPROF char_list」のように普通に変数宣言?した場合)の「char_list[0].char_p」の違いがよくわからないのですが・・・。 念のため、この関数word_widthと構造体CHARPROFを転記します。 アドバイス、よろしくお願いします。 typedef struct {  char char_p; /* 文字 */  int char_w; /* 文字幅(ポイント数) */ } CHARPROF; int word_width(char *str, CHARPROf *char_list) {  int print_w = 0, idx;  while (*str != '\0') {   for (idx = 0; (ここに穴埋め「d」が入る); idx++);   print_w += char_list[idx].char_w;   str++;   }   return print_w; }

  • ポインタ引数をさらにポインタ引数に渡す方法

    ポインタ引数をさらに関数のポインタ引数として設定するには、 どうしたらよいのでしょうか? イメージとしては、 int 関数A(*a *b) { *a = 5; *b =3; 関数B(*a *b) } またポインタ引数の関数内で、 ポインタ指定せずに変数を使えるのでしょうか? int 関数A(*a *b) { a = 5; b =3; 関数B(*a *b) }

  • 関数へのポインタ

    超初心者です。 C言語を使ってsin波を生成して音を鳴らそうとしているのですが・・ネットで調べてもよくワカリマセン・・ 超初心者な私でも理解できるようなサイトを教えて下さい. また、関数へのポインタも勉強しているのですが, char *(*func)(void); といったchar 型へのポインタを返す関数へのポインタというのがあったとして,関数へのポインタは理解できたのですがさらにchar 型へのポインタとなると一体これが何を指しているのかさっぱりで・・・・ ご協力お願いします.

  • ポインタの参照

    ある関数でポインタをパラメータとして渡し、呼ばれた関数の中でさらにポインタ参照されたもののメンバを参照するにはどうしたらいいのでしょうか? サンプル   intRet = AAA(&p); ←関数を呼びます。   int AAA(TBL **p) { ↑   このポインタの中身を参照したい } どなたかわかる方いらっしゃいましたらお願いします。