ポインタがわかりません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ポインタがわかりません

ポインタがわかりません

#1

投稿記事 by ポインタがわかりません » 12年前

ポインタがわかりません

ポインタの配列を使わざるを得ないときに配列の要素のなかの文字が何番目かしりたいです
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: ポインタがわかりません

#2

投稿記事 by softya(ソフト屋) » 12年前

&table[0];だとポインタのポインタを参照しているのと、大きい方から引かないとダメなので
offset = p - table[0];
だとだと思います
あとoffset は0からの相対番号となります。

質問する時は名前をちゃんと決めてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

もみじふぇにっくす

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

#3

投稿記事 by もみじふぇにっくす » 12年前

ご指導のとおりに大きい方からひくと先頭からのズレが計算でてきました。名前はもみふぇにっくすにしようとおもいます。これからもよろしくおねがいします。m(_ _)m

もみじふぇにっくす

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

#4

投稿記事 by もみじふぇにっくす » 12年前

解決しましたありがとうございます

閉鎖

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