[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 11:53 / Filesize : 185 KB / Number-of Response : 845
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 15



1 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 06:14:52 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 14
pc11.2ch.net/test/read.cgi/tech/1181735298/


教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 91代目
pc11.2ch.net/test/read.cgi/tech/1182607405/

741 名前:732 ◆L/nntMgEC6 [2007/07/06(金) 02:11:36 ]
>>735
可能なんですか?

742 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:12:01 ]
>>730 (・∀・)ニヤニヤ あるんだろ。Cじゃいらん。

743 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:24:21 ]
>>738 (・∀・)ニヤニヤ
> void*が無かった頃のCなら

744 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:27:29 ]
>>732
char a[10];
int i;

でa[i]ってことですか?
もちろん可能。

添え字は整数の値をとる式ならなんでもおkだぞ。

745 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:29:22 ]
>>744 (・∀・)ニヤニヤ
> 添え字は整数の値をとる式ならなんでもおkだぞ。

(VIPPERのAA略)<常識的に考えて配列の要素番号の範囲内だろ

746 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:33:49 ]
アホが常駐しとるな

747 名前:744 mailto:sage [2007/07/06(金) 02:34:12 ]
>>745
おまい!大丈夫か!
>>732は文法的に許されるかと質問しているんだろ!

748 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:34:50 ]
よい子がC言語の勉強実況してるからみてやろうぜ
WMPのファイル→URLを開く→matoinu.orz.hm:30000をコピペ→OK

実況スレ
何でも実況V なんでも実況フリーダム
live24.2ch.net/test/read.cgi/livevenus/1183654888/

面白いぜwwwwww



749 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:38:25 ]
範囲外まで指定できちゃうのがエラーの温床になってるしな。



750 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:40:29 ]
とりあえず (・∀・)ニヤニヤ を NG にした。

751 名前:732 ◆L/nntMgEC6 [2007/07/06(金) 02:42:37 ]
>>744さん
回答有難う御座います。

int i;
char a[]="abc";
i=strlen(a);
char b[i];

のような感じで使いたいのですが、可能でしょうか?

752 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:44:57 ]
>>747 (・∀・)ニヤニヤ 適切と不適切がわからないプログラマーワロスw
キャストは不要でつか〜〜〜?

753 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:46:39 ]
746 名前:デフォルトの名無しさん 投稿日:2007/07/06(金) 02:33:49
アホが常駐しとるな

(VIPPERのAA略) < 常識的に考えて知ったかぶって初心者にありもしないことを言う方がおかしいだろ
どう考えて配列を適切に参照できる、要素番号の範囲内の値をとる式ならって話ならわかるけどw

754 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:48:03 ]
とりあえず (VIPPERのAA略) を NG にした

755 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:49:35 ]
>>744 (^∀^) ニタニタ
> 添え字は整数の値をとる式ならなんでもおkだぞ。
整数の値をとる式ならなんでも 整数の値をとる式ならなんでも
こやつは要素数と参照できる範囲外の値をとってもおkなんだぞぉーーー!

756 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:50:28 ]
>>744 m9(^д^)9m プププ、(ダブル)プギャー

757 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:53:33 ]
文体変えてAA使っても、いつものアホだってことはバレバレ

758 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:53:52 ]
>>754
all right, I will use AA that's not for short.

759 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:54:34 ]
>>757
> いつものアホ
アホとか言っちゃってるよぉ〜〜〜、お前がアホのくせして初心者に大嘘教えているくせにw
お前みたいな奴にアホ言われたくね〜〜なぁ。俺は間違ってねーし。お前は不適切。



760 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:56:01 ]
VIPPER の AA 略 < 常識的に考えて、文法的におkってことを持ち出して
不十分な(というか間違っている)説明の言い訳をするかぁ?
んじゃお前は a[10] の配列の10番目を参照するときは a[10] とでもやってろよ

761 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:56:21 ]
>>751
それはダメ。
配列変数の宣言文には変数は使えない。
それをするなら

nt i;
char a[]="abc";
char *b;
i=strlen(a);
b=(char*)malloc(sizeof(char)*i);

762 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:56:51 ]
>>751
int i;
char a[]="abc";
char *b;
i=strlen(a);
b = (char*)malloc(sizeof(char)*i);

free(b);

スレの流れからすればこんな感じ
bにaと同じ長さの文字列を入れるなら+1しないと駄目だけど。

763 名前:732 ◆L/nntMgEC6 [2007/07/06(金) 02:58:25 ]
>>761さん
有難う御座います。おかげで疑問が解けました。

764 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:00:43 ]
 |    ( ●)(●)   いい加減な説明をしていることを指摘されて
. |     (__人__)   指摘した相手をアホとか言う方がアホだろ
  |     ` ⌒´ノ   常識的に考えて・・・

765 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:01:22 ]
>>761
C99ならできるというのは禁句かい?

766 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:03:23 ]
回答者が書く補足としては、ありだとおもう。
突っ込みとしては、ちょっと弱い。

767 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:04:15 ]
 / ノ  ⌒ \  文法的にも間違っていることを言う奴が
 |  (●)(●) |  間違っていない奴にアホって言うアホだろ
. |  (__人__)  | 常識的に考えて。ちゃんとキャストしろよ

768 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:05:15 ]
常考常考うるせーよ

貶し合ってないで意味のある話をしろ

769 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:08:42 ]
>>763
VBだとそれができるんだよね。

それはVBなどのインタープリター言語は実行時に変数宣言文も実行文もおなじように上から処理してゆくから。

Cのようなコンパイラ言語はコンパイル時に変数宣言文を処理してゆく。
だからコンパイル時に配列変数のサイズがわかっていないと処理ができない。

JavaもVBと同じだと思う。



770 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:09:22 ]
ここは初心者が鼻息を荒くして入門書読みながらレスしてるのが多くて注意が必要

771 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:09:45 ]
>>765
C99ならできるの?

772 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:10:54 ]
 |    ( ●)(●)   お前みたいな奴は、たとえドラマの役者として
. |     (__人__)   起用されても、まともなキャスティングもされずに
  |     ` ⌒´ノ   脇役かエキストラに決まってんじゃん>アホ言うたアホ

773 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:12:15 ]
AA厨も早く寝ろ
今日はお開きだ

774 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:15:42 ]
>>773 (・∀・)キャスキャス

775 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:17:05 ]
いまさらやらない夫のAA貼り付けて喜んでんのかよw

776 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:27:41 ]
>>771
余裕

777 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 03:27:46 ]
いまさら やらない か?っつか、いまさらキャストも適切に出来ない奴が
初心者相手にいい加減な説明、笑えねぇ〜〜〜〜〜。お前、指導者に向いてねーよ。

778 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 04:13:51 ]
キャストすると型によってアドレスが変わるプロセッサの話をすると、へんなのを召喚しちゃいますか?

779 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 04:41:39 ]
それがどうかしたのか?
printf に渡すときの話とはわけが違うぞ?



780 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 06:14:06 ]
1バイト文字と2バイト文字が混在してる文字列を
ループ使って1バイトずつputchar()で画面に表示しても
ちゃんとどちらも表示されるのは、シェルやプロンプトの方で
何バイト文字か確認して1バイト文字じゃない時は
一度バッファに溜める、とかしてるからですか?

781 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 06:21:01 ]
ものによるとしか

782 名前:780 mailto:sage [2007/07/06(金) 06:49:14 ]
>>781
例えばどうやって処理してるんですか?

783 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 07:35:00 ]
>>780
いいえ、シェルプログラムはそんなことはしません。

784 名前:780 mailto:sage [2007/07/06(金) 07:52:43 ]
>>783
あ、コンパイラがやってくれてるんですか?

785 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:09:19 ]
>>784
いいえ、勿論コンパイラの知ったこっちゃありません。

もしかしたら、画面表示はシェルプログラムがやっていると思っているんですか?
例えば他のPCにリモートログインしたときには相手先のシェルプログラムが動くわけですが、
そのシェルプログラムが自分の使っているPCの画面を直接アクセスするなんて夢でも見ているんですか?

786 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:23:14 ]
>>780
マルチバイト文字などに関係なく、標準入出力は
行単位バッファリングされていることが多い。

バッファリングなしにしても、まあ正しいマルチバイト文字列になった時点で
正しく表示されると仮定していいと思う。

787 名前:780 mailto:sage [2007/07/06(金) 08:24:22 ]
>>785
ということはOSの画面表示を担当するプログラムが
putchar()で2バイト文字の一部を出力しようとした時に
2バイト文字の一部だと判断し表示を一時中断して
次に送られてくるputcharの引数と組み合わせて
それに対応する2バイト文字を出力していているんでしょうか?

788 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:26:31 ]
2バイト文字で、1バイト目単体で文字としてなりたっているようなのってなんかあったっけ?

789 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:28:46 ]
>>788
iso-2022-jpの1バイト目はASCII文字と同じコード。



790 名前:780 mailto:sage [2007/07/06(金) 08:30:47 ]
>>786
行単位でバッファリングするんですね
それで予め2バイト文字があるかないか調べるわけですか、なるほど

791 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:39:37 ]
>>789
Shift_JISしか考えてなかった。参考になった
ありがとう

792 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:41:44 ]
文字コードの体系もしっかり管理しときゃ良い。

793 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 09:11:21 ]
型で区別するんじゃない?
char型ならその分のデータを受け取るまで待つ

794 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 09:18:02 ]
ASCIIコード体系でなければ左へ受け流すぅ〜

795 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 11:50:43 ]
1: 3.2 2.6 3.4 2.1 5.2 3.4 5.2
2.4 4.2 4.1 0.2 4.2 5.3

2: 3.2 2.4 3.4 2.2 5.2 3.4 5.2
2.4 4.2 4.3 0.2 4.2 5.3

3: 3.1 2.6 3.4 2.1 6.2 3.4 5.2
2.4 4.2 4.0 0.2 4.2 5.3

っていうデータがあるとして
10個目(つまり4.3 4.1 ,4.0)だけを抜き出すプログラムをつくれといわれると
float型でやりますか?char型でやりますか?

796 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 12:26:17 ]
「作れ」っつった本人に仕様を確認する。

797 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:03:17 ]
とりあえず float は使わない。
使うなら double 。

798 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:51:36 ]
つーか、計算もしないし区切りもはっきりしてるなら
文字列のままで通しちゃったほうがいいべ

799 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 14:01:23 ]
>>793
それはない。そんなことしたら、ファイルにリダイレクトできない。

>>791
iso-2022-jpの場合、KanjiInが来た後は2バイト文字、そうでなければAsciiという分け方。
だから2バイト文字の後にKanjiOutが来ないと文字化けする。

>>790
バッファリングはするかもしれないが、出力の判断とは直接的には無縁。
でなければエスケープシーケンスでの制御ができない。



800 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 15:41:47 ]
>>799
>KanjiInが来た後は
>KanjiOutが来ないと
そんなコード/シーケンスはありません。

801 名前:デフォルトの名無しさん [2007/07/06(金) 18:09:25 ]
Windows2000で作られたソフトはWindowsXPではうまく動作しないことが
あるのですか。LSI C-86を使ってC言語を学ぶという趣旨の本を5年前に
買ったのを今になって勉強しようとしてインストールしたという次第です。
最初のコマンドプロンプトがC:\>になるはずのところ、C:Documents and
Settings□□>となりエラーと表示されました。□□は、再起動時に
アカウント指定を要求され、自分の名前を入れたものです。
別な場所へインストールすればよいのですか。よろしくお願いします。

802 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 18:15:05 ]
>>801
LSI-C86は遺物なので、特殊性を理解できていないなら使ってはいけない。
MSのVisualStudioでもgccでも、無料で手に入るほかのコンパイラを使うことをお勧めする。

803 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 18:18:59 ]
まあコマンドプロンプトをC:\>にしたいなら、cd \ でいいけどな。
本と同じになるだけで、役には立たないだろうけど。

804 名前:デフォルトの名無しさん [2007/07/06(金) 18:26:59 ]
>802 responseありがとうございます。早速入手しようと思います。

805 名前:デフォルトの名無しさん [2007/07/06(金) 18:43:58 ]
ソーカcd¥−enterで続けられるのか。

806 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 18:59:38 ]
>>800 の意図が気になる。

807 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 19:03:18 ]
>>804
たぶん電子メールのレスと2ちゃんのレスは同じ意味を持ってると思うんだが、
だとしたら君が使ってるresponseはレスという意味とは違うぞ

808 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 19:06:00 ]
>>807
ja.wikipedia.org/wiki/%E3%83%AC%E3%82%B9

809 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 19:37:26 ]
nullponceというのを提案しまnce



810 名前:723 mailto:sage [2007/07/06(金) 19:39:17 ]
>>729
忘れてた

811 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 19:43:03 ]
英語版ウィキペには

Reply. Its abbreviation followed by colon (Re:) is prepended to e-mail subject lines when answering a received message

って書いてるんだよな。
まあ、スレ違いだからどうでもいいが。

812 名前:デフォルトの名無しさん [2007/07/06(金) 20:22:37 ]
A)入力装置に関する記述のうち,適切なものはどれか。
1 ジョイスティックは,画面上に透明なセンサを取り付けたものであり,画面に指などを押し付けて座標を指示する。
2 タブレットは,ペンのような装置と板状の装置を組み合わせた入力機器であり,ペンのような装置を押し付けて座標を指示する。
3 ディジタイザは,人間のもつ静電気を利用して指の位置を検出するポインティングデバイスであり,操作面を指して座標を指示する。
4 トラックパッドは,球の一部分が装置の上面に出ているポインティングデバイスであり,球を指で直接回転させて,その変化量で座標を指示する。

すみません、質問なのですが今上の問題がハードウエアの組み込みの
参考書の問題がわかりませんので、教えてはいただけないでしょうか?

813 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:25:09 ]
>>812
2

814 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:26:34 ]

1はジョイスティックの説明ではない事は明らかだから×
2は正しいと思うから○
3は知らんから知らん
4はトラックパッドじゃなくてトラックボールの説明だから×

815 名前:デフォルトの名無しさん [2007/07/06(金) 20:29:48 ]
ありがとうございました。

これで先に行けます。

816 名前:デフォルトの名無しさん [2007/07/06(金) 20:32:06 ]
制御系といえば、C言語だけど
Cのすごい所って何?

817 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:38:01 ]
体にぴったり張り付くスク水の用に、ハードウェアに貼り付ける所

818 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:38:40 ]
>>816
おまえの方がすごいと思う。

819 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:38:58 ]
3はタッチセンサとか、タッチスクリーンとか言われている物のうちの1種だね



820 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:41:36 ]
>>812
3の説明がトラックパッドっぽいな

821 名前:デフォルトの名無しさん [2007/07/06(金) 20:42:36 ]
C言語にできることは、C++にもできるって聞いたんだけど、
C++も体にぴったり張り付くスク水のように、
ハードウェアに貼りつけるの??

822 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:43:22 ]
Cと同じようにできる。

823 名前:デフォルトの名無しさん [2007/07/06(金) 20:44:46 ]
C++もC言語と同じように最強ならば、
C++も制御系によく使われるの?
それともC++はオープン系(WEB系も含む)?

824 名前:デフォルトの名無しさん [2007/07/06(金) 20:47:10 ]
質問です。年月日を入力してツェラーの公式を利用して曜日を表示するプログラム
をつくりたいんですけど、BCCでコンパイルしたら公式のところでエラー
「浮動小数点の不正な使用」ってでるんですけど、どうしてだかわかりますかね?
#include <stdio.h>

int main(void){
int year,month,day;
char youbi[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int i;

printf("Year?");
scanf("%d",&year);
printf("Month?");
scanf("%d",&month);
printf("Day?");
scanf("%d",&day);

i=(year + (year/4) - (year/100) + (year/400) + (2.6*month +1.6) + day)%7;
printf("It's %s.",youbi[i]);
return 0;
}

825 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:49:26 ]
>>821
C++の場合スク水フェチのオジサンが自分で着る用に作ったものもあるので注意

826 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:56:27 ]
>>824
(2.6*month +1.6)を(int)(2.6*month +1.6)にしろ。
ここが整数でないから、%の左側全体が整数型でなくなっている。
剰余演算子は浮動小数点数を演算対象にできないので、件のエラーになる。

827 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:57:13 ]
>>823
Cが制御系で使われるのは「最強」だからではなく「高級アセンブラ」だから。
C++も制御系で使われるよ。C++として使われるかはともかく。

つか、最強ってなんだよ。

828 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:58:38 ]
>>824
剰余演算子%というオペランドは整数同士でないとダメ

演算してる行の型がごっちゃになってるから明示的にキャストしたり読みやすくすべき
基本的にコメント文とかで説明もなしに実数を整数に叩き込んだりしちゃだめ

829 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:19:14 ]
なるほど。できました、ありがとうございます。



830 名前:デフォルトの名無しさん [2007/07/06(金) 21:30:26 ]
スレ違いかもだけど、ここの人達他のスレより頼りになりそうなので。。。
基本情報の午後問をCで受かりたいのですが、なんの本を読めばいいですか?
当方、C言語はよくわかりません。COBOLは少しできます。
ただCで受けたいのです。

831 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:32:10 ]
>>830
試験は慣れたものでやるべき

832 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:58:20 ]
>>830
アセンブラがオススメ
例年一番簡単

833 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:59:06 ]
C言語ってeclipceかbolandか、
それともvisual basic かどれでやればいいですか?

834 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:04:13 ]
その質問おもしろい?

835 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:10:25 ]
visual studioだっけ?

836 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:12:46 ]
>>833
Linuxでもできるよ。

837 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:14:19 ]
整数型配列は
int iarray[10];
memset(iarray, 0, sizeof(array));
ですべて0で初期化できると知ったのですが、

実数型配列を
double darray[10];
memset(darray, 0.0, sizeof(array));
のように初期化してもかまいませんか?
つまり実数型配列の全ての要素を0.0にしたいのです

838 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:16:31 ]
>>837
いいんじゃね?
DirectXとか、そういう方法で、実数やらポインタやらバリバリクリアしてたな。
移植性は無くなる。

839 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:17:55 ]
> memset(darray, 0.0, sizeof(array)); 

あ、これは、警告かエラーになるな。
sizeof のところはミスだよね?




840 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:19:54 ]
>>837
ANSI/ISO Cへの移植性を望むなら避けるべき。
浮動小数点数がIEEE 754に則っていることを仮定してよいなら構わない。

841 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:21:17 ]
>>833
ほとんどにアルゴリズムの問題
ポケコンのCインタプリタでおk

842 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:26:29 ]
>>839
あと、0.0 は 0 だな。

843 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:27:49 ]
>>839
すみません sizeof(darray) です
あとmanページでmenset関数を調べてみると
#include <string.h>
void *memset(void *buf, int ch, size_t n);
となっていたので
int ch に0.0と渡してもだめなんですね

ということは関数の仕様上は
memset(darray, 0, sizeof(darray));
と書くのが正しくて、
しかもCコンパイラの浮動小数点がIEEE754前提での使い方なので

結局は配列の要素数の分だけループで回して初期化するのが
一番いちゃもん言われにくいということでよろしいでしょうか?
ありがとうございました

844 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:29:23 ]
エクセス64で 0 ってどうなるの?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<185KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef