調べても分からなかったので教えてください。
size_tはいくつまでの値を取れるのでしょう?
具体的には、
size_t strlen();
という関数はいくつまでの文字数なら取得できるのでしょうか?
size_tの取れる値
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: size_tの取れる値
size_tは環境依存ですので環境によって代わります。
VC++でも32bitコンパイルと64bitコンパイルで違うサイズです。
VC++でも32bitコンパイルと64bitコンパイルで違うサイズです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: size_tの取れる値
すごい初歩的な質問なのですが、
セーブロードのプログラムを組んで、size_tの最大値の違う環境でそのプログラムを動かしたとき、
読み込み量をsizeof(size_t)なんてやってると読み込まれる量が違ってきちゃうんでしょうか?
とのことですが、softya(ソフト屋) さんが書きました:size_tは環境依存ですので環境によって代わります。
セーブロードのプログラムを組んで、size_tの最大値の違う環境でそのプログラムを動かしたとき、
読み込み量をsizeof(size_t)なんてやってると読み込まれる量が違ってきちゃうんでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: size_tの取れる値
コンパイル時に決まりますので、同じコンパイラで同じモード(32/64)であれば大丈夫です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: size_tの取れる値
コンパイル時に決まりますので、同じコンパイラで同じモード(32/64)であれば大丈夫です。
実行時はOSが互換を取ってくれます。
実行時はOSが互換を取ってくれます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: size_tの取れる値
OSって凄いですね(小学生並みの感想)softya(ソフト屋) さんが書きました:実行時はOSが互換を取ってくれます。
最後に編集したユーザー 史上最悪のデスペナ on 2012年1月14日(土) 15:30 [ 編集 1 回目 ]
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: size_tの取れる値
ことば足らずだったので、strlenの場合はコンパイラとライブラリ(OSは64bitライブラリと32bitライブラリが混じらないように管理)が保証します。ファイルなどOSが絡むライブラリ関数などはOSが保証します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。