どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#61

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

 ちょっと微妙なのでcharを使って型で書いてみましょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 14年前

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#62

投稿記事 by 史上最悪のデスペナ » 13年前

**Str・・・・・・char**
*Str・・・・・・・char*
Str・・・・・・・・char

のような気もするけど・・・・

**Str・・・・・・char***
*Str・・・・・・・char**
Str・・・・・・・・char*

ですかね?

beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#63

投稿記事 by beatle » 13年前

史上最悪のデスペナ さんが書きました:**Str・・・・・・・文字
*Str・・・・・・・・**Strのアドレス(メモリの番地)
Str・・・・・・・・・*Strのアドレス(メモリの番地が入っているメモリの番地)
史上最悪のデスペナ さんが書きました:**Str・・・・・・char**
*Str・・・・・・・char*
Str・・・・・・・・char
が矛盾していることには気づいてますか?

史上最悪のデスペナ
記事: 521
登録日時: 14年前

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#64

投稿記事 by 史上最悪のデスペナ » 13年前

beatle さんが書きました:
史上最悪のデスペナ さんが書きました:**Str・・・・・・・文字
*Str・・・・・・・・**Strのアドレス(メモリの番地)
Str・・・・・・・・・*Strのアドレス(メモリの番地が入っているメモリの番地)
史上最悪のデスペナ さんが書きました:**Str・・・・・・char**
*Str・・・・・・・char*
Str・・・・・・・・char
が矛盾していることには気づいてますか?
ほほう。そうなんですか。

じゃあ、
**Str・・・・・・・・・・char
*Str・・・・・・・・・・・char*
Str・・・・・・・・・・・・char**

かな?(消去法?勘?微妙な思い付きによる答え)
softya(ソフト屋) さんが書きました:説明したサイトにも有ったと思いますが図を書いてみると理解が進むと思います。
図が描けませんでした!

もう笑うしかないですね^^;全っ然理解できません。
なのに気付いたらランクが上級者にww
上級者以上のランカーで私以下のレベルの方がいるだろうか、いやいないだろう。

beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#65

投稿記事 by beatle » 13年前

softyaさんは,charを使って「型で書け」と言ったのです.
C言語で1文字を表す型は char ですね.
C言語でcharへのポインタを表す型は char * ですね.
すなわち,C言語で「charへのポインタ」へのポインタを表す型は char ** です.

Strっていう変数名を使っていますけれど,Strはstringの略ですから,普通は文字列を表すのにstrという変数名を使います.
誤解の元ですから,char *以外の型の変数をstrという名前にするのは止めた方が賢明です.

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#66

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

ポインタは多くの人が躓くのでしっかり勉強しましょう。
まんまの「ポインタのポインタ」ってのが参考サイトにあるんですが読みましたか?
あと 単純なポインタから図を書いてみたほうが良いでしょうね。

ポインタだけで本があるぐらいですから理解を焦ってはダメですよ。
「Amazon.co.jp: ポインタ: 本」
http://www.amazon.co.jp/%E3%83%9D%E3%82 ... %BF&page=1

【補足】 参考を追加しておきます。自分が分かりやすいと思うものを読んでみてください。
「Part4 誰もがつまずくポインタを完璧理解 - C/C++は永久に不滅です!:ITpro」
http://itpro.nikkeibp.co.jp/article/COL ... 06/256198/
「C言語ポイント学習 (配列とポインタその1)」
http://www2.netf.org/pointer1.html
「第6回 ポインタを理解して文字列を扱う - よくわかるC言語:ITpro」
http://itpro.nikkeibp.co.jp/article/COL ... 31/252216/
「C言語~ポインタ~ -ヒバリのとまりぎ-」
http://spitzayano.web.fc2.com/arrangeme ... inter.html

それとデバッガを上手く使ってイメージを掴みましょう!ポインタや配列、文字列をデバッガで覗いてみましょう!
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 14年前

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#67

投稿記事 by 史上最悪のデスペナ » 13年前

私が理解できないのがいけないのですが何か別の方向に向かっている気がするので
史上最悪のデスペナ さんが書きました:分からない所は

コード:

 
//OK
char **Str = new char*[Num];
 
////////////////////////////////////////
 
//実行時エラー
char **Str;
**Str = new char*[Num];
である理由です。
ここの部分を別にトピックを立てて、こっちでは(その場しのぎを繰り返しながら)次の段階にどんどん進めていっていただいても宜しいですか?

Ryo

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#68

投稿記事 by Ryo » 13年前

Strは「char**」型
それを使うときにも**をつけたら4つの*がついてることになる

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#69

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

セーブや通信を後回しにして別のことを並行するなら別に構わないと思いますが、セーブや通信をやるならポインタをまず理解しないと進まない状況だと思います。
[補足]ともかくトピックが長くなったので仕切り直すのは賛成です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。


史上最悪のデスペナ
記事: 521
登録日時: 14年前

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#71

投稿記事 by 史上最悪のデスペナ » 13年前

softya(ソフト屋) さんが書きました:セーブや通信をやるならポインタをまず理解しないと進まない状況だと思います。
[補足]ともかくトピックが長くなったので仕切り直すのは賛成です。
エンディアンだとかバディングとかもポインタの知識が必要になりますか?メモリ関係なのでなりそうですが、あまり関係なかったら教えていただけると幸いです。
beatle さんが書きました:blog.php?u=783&b=2698
ポインタ攻略法を書いてみました.ご参考にどうぞ.
ありがとうございます。softya(ソフト屋)さんの貼ってくださったリンクと共に勉強させていただきます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#72

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

史上最悪のデスペナ さんが書きました:エンディアンだとかバディングとかもポインタの知識が必要になりますか?メモリ関係なのでなりそうですが、あまり関係なかったら教えていただけると幸いです。
エンディアンは違うタイプのCPUが混ざらない限りは大丈夫です。ただ、バイナリエディタで見ているうちに覚える気もしますが。
パディングはメモリ配置の話ですので、バイナリデータで構造体を扱う限りは意識する必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 14年前

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#73

投稿記事 by 史上最悪のデスペナ » 13年前

softya(ソフト屋) さんが書きました:エンディアンは違うタイプのCPUが混ざらない限りは大丈夫です。
オンラインゲームを作りたいので知る必要がありますね。教えてください!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#74

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

史上最悪のデスペナ さんが書きました:
softya(ソフト屋) さんが書きました:エンディアンは違うタイプのCPUが混ざらない限りは大丈夫です。
オンラインゲームを作りたいので知る必要がありますね。教えてください!
とりあえず史上最悪のデスペナさんが使う可能性がある一般的パソコンで動いているWindows/Linux/MacはINTELやAMDのx86アーキテクチャを使っているので全部リトルエンディアンです。レンタルサーバーでこれ以外が無いわけはないですが、わざわざ借りることもないと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

史上最悪のデスペナ
記事: 521
登録日時: 14年前

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#75

投稿記事 by 史上最悪のデスペナ » 13年前

softya(ソフト屋) さんが書きました:とりあえず史上最悪のデスペナさんが使う可能性がある一般的パソコンで動いているWindows/Linux/MacはINTELやAMDのx86アーキテクチャを使っているので全部リトルエンディアンです。レンタルサーバーでこれ以外が無いわけはないですが、わざわざ借りることもないと思います。
じゃあもう全部リトルエンディアンでいいじゃん、と思ってしまいます^^;

では、ここは解決にしておきます。
ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#76

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

あくまでも史上最悪のデスペナさんが使う環境の話ですのでゲーム機とかビックエンディアンのCPUは沢山あります。ファイル形式としてビックエンディンが定められているファイルもありますので、いつでもリトルエンディアンが通用するわけではありません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: どんなデータ型(のアドレスでも可)でも保存できる変数ってありますか?

#77

投稿記事 by ISLe » 13年前

ネットワークバイトオーダーは一般的にビッグエンディアン…というのはここでは関係ない話ですね。
余談でした。

閉鎖

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