ポインタがわかりません
ポインタの配列を使わざるを得ないときに配列の要素のなかの文字が何番目かしりたいです
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と出てくる
ポインタがわかりません
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: ポインタがわかりません
&table[0];だとポインタのポインタを参照しているのと、大きい方から引かないとダメなので
offset = p - table[0];
だとだと思います
あとoffset は0からの相対番号となります。
質問する時は名前をちゃんと決めてくださいね。
offset = p - table[0];
だとだと思います
あとoffset は0からの相対番号となります。
質問する時は名前をちゃんと決めてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
もみじふぇにっくす
Re: ポインタがわかりません
ご指導のとおりに大きい方からひくと先頭からのズレが計算でてきました。名前はもみふぇにっくすにしようとおもいます。これからもよろしくおねがいします。m(_ _)m