ページ 11

ポインタがわかりません

Posted: 2013年7月05日(金) 22:26
by ポインタがわかりません
ポインタがわかりません

ポインタの配列を使わざるを得ないときに配列の要素のなかの文字が何番目かしりたいです
C言語は3ヶ月くらいです

char *table[100];
char *p;
int offset;

table[0]=(char*)malloc(sizeof(char)*100);
strcpy(table[0],"abcdefghijkl\0"); //ポインタの配列の0個目にabcdefghijklと書いてある
p=strstr(table[0],"h"); //探した"h"が先頭から難番目にあるか知りたい
offset=&table[0]-p; //だと-4と出てくる

Re: ポインタがわかりません

Posted: 2013年7月05日(金) 23:02
by softya(ソフト屋)
&table[0];だとポインタのポインタを参照しているのと、大きい方から引かないとダメなので
offset = p - table[0];
だとだと思います
あとoffset は0からの相対番号となります。

質問する時は名前をちゃんと決めてくださいね。

Re: ポインタがわかりません

Posted: 2013年7月06日(土) 13:42
by もみじふぇにっくす
ご指導のとおりに大きい方からひくと先頭からのズレが計算でてきました。名前はもみふぇにっくすにしようとおもいます。これからもよろしくおねがいします。m(_ _)m

Re: ポインタがわかりません

Posted: 2013年7月06日(土) 14:11
by もみじふぇにっくす
解決しましたありがとうございます