[過去ログ]
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1478440682/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
949: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/14(金) 20:55:56.83 ID:RoIBY40S >>947 どこに書いてあったか? 苦情入れるぞ。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/949
950: デフォルトの名無しさん [sage] 2017/07/14(金) 21:04:08.43 ID:TW7O0pB9 今日の>>945は健常者 後始末される例外ケースについて触れていたら完璧だった http://mevius.5ch.net/test/read.cgi/tech/1478440682/950
951: デフォルトの名無しさん [sage] 2017/07/14(金) 21:06:50.82 ID:VdC9hBdZ atexit で後始末回収機構走らないの? http://mevius.5ch.net/test/read.cgi/tech/1478440682/951
952: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/14(金) 21:39:46.62 ID:RoIBY40S >>947 どこに書いてあった? http://mevius.5ch.net/test/read.cgi/tech/1478440682/952
953: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/14(金) 21:46:17.67 ID:RoIBY40S atexitはマニュアルに書いてある通りだから、ここでいちいち説明する必要はない。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/953
954: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/14(金) 21:53:53.48 ID:RoIBY40S マニュアルこそが聖書。マニュアルを読まない奴等はノンプレイヤー。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/954
955: デフォルトの名無しさん [sage] 2017/07/14(金) 22:54:13.51 ID:RlDfzlps つまりexit()はバカ発見器ってこと? http://mevius.5ch.net/test/read.cgi/tech/1478440682/955
956: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/14(金) 23:01:28.54 ID:RoIBY40S C++でexit使うぐらいなら、代わりにC++例外を使った方がいいよ。デバッグしやすいし。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/956
957: デフォルトの名無しさん [sage] 2017/07/15(土) 05:41:00.21 ID:81gh4ly6 >>947 exit() 関数に入ってしまってはデストラクタが働かないのに,それでも return 文と一緒といいはるの? それ規格がまちがってるから,そのうち修正がはいるはず http://mevius.5ch.net/test/read.cgi/tech/1478440682/957
958: デフォルトの名無しさん [sage] 2017/07/15(土) 13:25:52.33 ID:d+yGYUAe ポインタの作法に慣れないです 読めるけどかけないです http://mevius.5ch.net/test/read.cgi/tech/1478440682/958
959: デフォルトの名無しさん [sage] 2017/07/15(土) 16:38:44.94 ID:sZ4h7fLQ ポインタは2段までしか使わないなあ 関数ポインタはstd::functionに入れる癖がついたし http://mevius.5ch.net/test/read.cgi/tech/1478440682/959
960: デフォルトの名無しさん [sage] 2017/07/15(土) 17:20:33.71 ID:d+yGYUAe #include<stdio.h> int unko(int x); int aho(int *y); int main(void) { int a[5] = { 1,2,3,4,5 }; unko(a); aho(&a); printf("%x\n%x\n", a, &a); return 0; } int unko(int x) { printf("%x\n", x); return; } int aho(int*y) { printf("%d\n%d\n",*(y+1), y[2]); return; } このとき関数unkoで配列aの中身にアクセスする方法ってありませんか? アドレスがわかっているからできそうな気もするんですがよく解りません。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/960
961: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/15(土) 17:27:13.54 ID:xLcEZRbh aがint a[5]であるとき、aはint配列の先頭アドレスだ。unkoの引数をポインターにしろ。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/961
962: デフォルトの名無しさん [sage] 2017/07/15(土) 17:56:11.02 ID:d+yGYUAe はい http://mevius.5ch.net/test/read.cgi/tech/1478440682/962
963: デフォルトの名無しさん [sage] 2017/07/15(土) 20:48:00.24 ID:iuayY/9E そもそもこのソースコンパイルエラーになるんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1478440682/963
964: デフォルトの名無しさん [sage] 2017/07/15(土) 21:29:06.16 ID:d+yGYUAe >>963 VSだとコンパイラ通るんですが他のだと通りませんか? あと関数unkoをいろいろ弄ってたんですが #include<stdio.h> void unko(int x); void aho(int *y); int main(void) { int a[5] = { 1,2,3,4,5 }; unko(a); aho(a); printf("%x\n%x\n", a, &a); printf("%d\n",a[4]); return 0; } void unko(int x) { printf("%x\n", x); int *p = x; printf("%d\n%d\n", p[1],*(p+2)); p[4] = 10; return; } void aho(int*y) { printf("%d\n%d\n",*(y+1), y[2]); return; } こんな記述にすれば少なくともVSでは引数をポインタにしなくても配列aの要素を覗いたり操作したりできることがわかりました。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/964
965: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/15(土) 21:31:54.33 ID:18nkvKxh 型がめちゃくちゃだあああ!!! 型が形無し! http://mevius.5ch.net/test/read.cgi/tech/1478440682/965
966: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/15(土) 21:36:49.71 ID:18nkvKxh できることとやってもいいことは違うんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/966
967: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/15(土) 21:39:23.41 ID:18nkvKxh コンパイル時に出て来る度重なる警告を無視したらダメだよ。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/967
968: デフォルトの名無しさん [sage] 2017/07/15(土) 21:44:11.03 ID:d+yGYUAe すみません http://mevius.5ch.net/test/read.cgi/tech/1478440682/968
969: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/15(土) 21:46:08.79 ID:18nkvKxh お使いの32ビット環境ではintとint*が同じサイズだから、キャストされれば代入できる。sizeof(int) == sizeof(int*)。 しかし、64ビット環境では動かなくなるかもしれない。ポインター型を無視した良くない書き方だ。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/969
970: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/15(土) 21:54:52.27 ID:18nkvKxh おそらく、君の環境では、 sizeof(int) == 4, sizeof(int*) == 4 のはずだ。 64bit環境では、多分 sizeof(int) == 4, sizeof(int*) == 8 になる。確認してみたまえ。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/970
971: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/15(土) 21:57:34.94 ID:18nkvKxh int*のサイズがintのサイズより大きいと、ポインター(アドレス)の値が正しく代入できない。これが64bitで失敗する理由だ。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/971
972: デフォルトの名無しさん [sage] 2017/07/15(土) 22:08:26.63 ID:qXQ9KlTo こまけーことをゴチャゴチャと Cなんて大なり小なり環境依存な場面しか使わん 貴様はintに32767以下しか入れんのか? http://mevius.5ch.net/test/read.cgi/tech/1478440682/972
973: デフォルトの名無しさん [sage] 2017/07/15(土) 22:10:20.05 ID:d+yGYUAe 確かめてみたら確かに自分の環境では両方4バイトでした 64bitのプログラムにしたらダメになるんですね・・・ 勉強になります。ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1478440682/973
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 29 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s