- 1 名前:デフォルトの名無しさん [2019/04/02(火) 11:23:37.62 ID:SQXqRaAc0.net]
- !extend:checked:vvvvv:1000:512
C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 830 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 21:31:11.89 ID:51aJPRpO0.net]
- TRUEと比較するなって先輩に言われたろ
- 831 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 21:37:49.54 ID:e6zybBXY0.net]
- !!a == TRUE ならセーフになると思われるー
- 832 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:15:27.47 ID:RQudHa2vd.net]
- 論理演算では1が真なのに終了は1が異常終了なのはなぜですか?
1が正しく0が間違いというイメージなのですが
- 833 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:18:06.19 ID:RHh4qcVs0.net]
- 昔はintを返す習慣が多分にあったのでその習慣によるが、自分は異常終了は-1返してたな。
- 834 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:19:30.98 ID:0dWbT8qma.net]
- >>807
いや、boolが戻り値なら真を成功にすることがむしろ多いと思う。 「エラーを返す」関数の需要が多いということではないか。
- 835 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:21:18.54 ID:51aJPRpO0.net]
- エラーの種類を沢山返せるから
- 836 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:23:25.13 ID:e6zybBXY0.net]
- 正常というのは1つの状態しかないが
異常には色々な種類があるのでそれを区別するためにコードとして返したい というのと 2値しかない真偽をどう値に配分するか というのを同列に並べるとパニック。 C言語では別のものとして割り切る なぜC言語では偽を0に割り当てたのか?という問いの答えを求めているのならば… 俺は知らない
- 837 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:23:54.80 ID:Bjvb97BWx.net]
- >>807
正常は 0でいいけど、異常はいろいろな状態の別を報告できるようにでは
- 838 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:30:40.09 ID:51aJPRpO0.net]
- ソフト会社に長年いて開発者からこの質問は初
OSインストールできませんなんてすごく高度なんだなって思った コマンドのテストでコマンドの戻り値ってあるんですがなんですか?
- 839 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:36:39.33 ID:0dWbT8qma.net]
- >>813
windowsの終了ステータスの確認の仕方とか忘れるしなあ。 言葉で出てくる結果しか見れないなんて普通だと思うわ。
- 840 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:42:11.06 ID:xj9RlcCA0.net]
- 0が偽なのにnoerrというイカれた慣習はどうして生まれたんだろうねぇ。
- 841 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:58:47.67 ID:DaiiMVNnx.net]
- 最初に誕生した OS、system/360 の JCLでも、正常は 0、警告が 4だったか 8だったかで、異常が 8だったか 16だったかだったな
z/OSでも同じだろうけど 知らんけど
- 842 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 23:33:27.02 ID:sehGKr170.net]
- 幸福な戻り値はどれも似たものだが、不幸な戻り値はいずれもそれぞれに不幸なものである。
- 843 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 23:33:41.86 ID:nzmV+Edn0.net]
- if (error == 0)
で違和感ないじゃん
- 844 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 03:30:43.12 ID:KzIynz9K0.net]
- 0 informational
1 warning 2 error 3 severe 4 critical
- 845 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 11:21:36.15 ID:5iouJYEP0.net]
- 返り値0でエラーなしはUNIXのコマンド終了ステータス以来の慣習かな。
「正常終了」は状態が1種類しかないけど、失敗は「どう失敗したか」で 複数の状態があるから、正常で0、他の値はエラーコードってのは便利でしょ。 論理演算子の結果で true false の1と0は、論理学の数値表現を プログラム言語にそのまま写しこんだからじゃないかと。 関数は一般にエラー状態を返り値で返す、と思っていれば 正常 == 返り値0 == false は違和感ないかと。 このルールから外れてるのは「失敗時にNULLを返す」タイプの関数で、 結構たくさん存在するのが困ったところだけど。
- 846 名前:デフォルトの名無しさん [2019/06/08(土) 11:32:28.80 ID:7CBKOF2N0.net]
- Cでは同一のもとして動かせてしまうが
そもそもエラーコードとboolを同一視してる時点で論外なんだが
- 847 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 11:38:57.76 ID:WG7jlf5q0.net]
- 論理型を別に設けずに整数型で代用してしまおうというアイデアはBやCの言語仕様をコンパクトに
抑えるのに役立ったが、今となってはプリプロセッサマクロと同じくらいの悪しき遺産だなぁ。
- 848 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 14:58:06.03 ID:KzIynz9K0.net]
- え、何か問題あるか?
- 849 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:35:48.39 ID:X+3AMWAUM.net]
- C99以降であれば_Bool型を使えばいいのでは?
- 850 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:41:42.45 ID:KzIynz9K0.net]
- ダメだこりゃ
- 851 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:41:57.08 ID:bm2ApAetM.net]
- 正常時1で異常時0を返す関数が混ざってたり
正常時ポインタで異常時ヌルポ返す関数があったり それらの関数の返り値を全部 if でチェックしててカオスだったことがあります
- 852 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:56:39.68 ID:KzIynz9K0.net]
- BOOLを返す関数が負数を返したかどうか調べにゃあかんやつとかな
- 853 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:38:04.87 ID:WG7jlf5q0.net]
- ワインバーグの本にあったなあ。ドル紙幣はみんな同じ色、同じサイズで見分けがつきにくいけど、
それが常識だと思っている人は、一定の確率で間違えてしまうことも世界の法則で仕方のない ことだと思っているとか。
- 854 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 17:13:44.27 ID:auwh2hzj0.net]
- >>827
GetMessage()の悪口はいくら言ってもよいぞ DWORDにしとけよ
- 855 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 18:39:07.71 ID:jm0tDZO60.net]
- >>826
カオスっていうかこれ普通じゃない? 標準ライブラリのラッパー書くとき互換性保つために0成功にするでしょ で他のオレオレライブラリはboolという
- 856 名前:デフォルトの名無しさん [2019/06/08(土) 18:53:36.19 ID:jXs/KV+s0.net]
- 戻り地がboolのときはtrueが成功
intのときは0が成功なんだよ
- 857 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 19:39:01.75 ID:ogfAGAzJ0.net]
- bool型ができたのはC99のときなので
- 858 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 19:42:23.71 ID:jm0tDZO60.net]
- boolぐらいなにもインクルードしなくても使わせてくれぽよ
- 859 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 19:54:54.89 ID:ogfAGAzJ0.net]
- 「歴史的理由」という奴
- 860 名前:デフォルトの名無しさん [2019/06/08(土) 21:28:56.66 ID:gCLo3iIIa.net]
- >>830
それのせいでPrelではシステムコールと同名の関数の返り値がいまいち統一取れてなかったりして、結局マニュアル見ながら個別に覚えざるを得なかったりする。 Perlはだいたいは1が成功でundefが失敗なんだけどね。(undefはCでのNULLみたいなもの。未定義を意味する。定義されてて値が0の時とは違うが、書き方によっては同じように扱えることもある)。
- 861 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 21:58:16.60 ID:nbjDJ9kZa.net]
- 今C++にあるoptionalだっけ?
あんな感じの有ってもいいな。かなりうざい感じになるから使わんか。
- 862 名前:デフォルトの名無しさん [2019/06/09(日) 11:06:53.62 ID:42ARNGRn0.net]
- インクルードをURLで引っ張ってこれたら面白いのに。
- 863 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 11:17:01.45 ID:ZHA7gcDF0.net]
- 一発でウイルス仕込まれそう
- 864 名前:デフォルトの名無しさん [2019/06/09(日) 11:59:40.15 ID:W83DJxDE0.net]
- コスパ最強の副業「動画編集」で稼ぐ方法【生ハム登場】
https://www.youtube.com/watch?v=0ogHVUKoa8k 【最強の副業】動画編集で稼ぎ続ける人の条件【未来予想】 https://www.youtube.com/watch?v=e-IA4ePHzOs 【おすすめ副業・在宅ワーク】「動画編集」は初心者でも時給1,500円狙えます。 https://www.youtube.com/watch?v=8gYAqdSsI98&t=168s 【与沢翼】動画編集素人でも本気でやれば個人で月収1000万も夢ではないですよ。 実は動画ってすぐプロと同じクオリティで作れちゃうし月収20万はすぐですよ https://www.youtube.com/watch?v=ws55W45OLbE センスのいい映像を短時間で編集する方法 https://www.youtube.com/watch?v=k0TT4Tbf_Ec
- 865 名前:デフォルトの名無しさん [2019/06/09(日) 14:38:56.62 ID:zgQq0a060.net]
- >>837
/use/include ディレクトリをNFS マウントでもしとけ。
- 866 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 14:18:29.61 ID:suKt4vmPd.net]
- すみません、質問があります。
環境はlinuxです。 ある共有ライブラリlibA.soをロードするプログラムbがあります。 このプログラムbをlibA.so抜きでgccでビルドすることはできるでしょうか? もちろん実行時にはlibA.soは用意します。
- 867 名前:デフォルトの名無しさん [2019/06/11(火) 15:09:21.38 ID:UmxJxqMia.net]
- >>841
リンクされる関数やグローバル変数が全て揃ってれば誤魔化し効くのではないかな。
- 868 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 16:20:37.89 ID:X43Szptna.net]
- シンボルだけ定義したsoファイルを用意するのが普通ではないかと
- 869 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 18:35:03.43 ID:z8NS6dzQ0.net]
- ダミーファイルを用意とか、かっけえな
- 870 名前:デフォルトの名無しさん [2019/06/11(火) 20:38:50.54 ID:UmxJxqMia.net]
- そ、そうか?
- 871 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 21:26:50.36 ID:suKt4vmPd.net]
- ビルド用のsoファイルを用意する、でいこうと思います。ありがとうございました!
- 872 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 22:01:48.05 ID:vnr40KfNa.net]
- スタブってやつね。
dlopen使うと基本そうなると思う。 もともと自動的なシンボル解決して
- 873 名前:る場合は無視できたかも。 []
- [ここ壊れてます]
- 874 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 00:00:59.88 ID:82Q6hISi0.net]
- >>847
お前は何を言ってるんだ
- 875 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 02:05:00.40 ID:vWkgJgOw0.net]
- たぶん、DLL import, export みたいな定義ファイルさえあれば、コンパイルできるだろ?
- 876 名前:デフォルトの名無しさん [2019/06/12(水) 09:25:53.48 ID:apqCeTcNa.net]
- DLL? Windowsだとそうなの?
- 877 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 10:40:58.95 ID:QpFBULjO0.net]
- a) dll import キーワードつきのヘッダでコンパイル
DLLを読み込みシンボル解決する .lib をリンク 実行時には dll 読み込みをやってくれる (無いと文句言う) b) 自前で DLL読み込んで GetProcAddress で関ポにセットして、 その関ポを呼び出すラップ関数を用意 自前ロードしてるので、実行時に無い時別の処理の記述が可能になるん
- 878 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 13:22:19.29 ID:tXoihok+d.net]
- 大学でc言語を学び始めました
ポインタが意味不明でした 何がわからないのかわからない
- 879 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 13:54:13.91 ID:wTJRUi3Ix.net]
- メモリとアドレスの概念が分かってないからじゃね?
- 880 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 19:07:04.64 ID:mXxRrk+K0.net]
- 現実世界にポインタと同じものを説明する概念がないから簡単な説明のしようがないんだよなぁ。住所録とか余計こんがらがるし。
素直に本を沢山読んでプログラムを組んで慣れるしか無い
- 881 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 19:27:38.29 ID:HQZYLHkVa.net]
- 本にページ数がない世界?
- 882 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 20:56:34.51 ID:8abVSTNa0.net]
- アドレスは&つけてprintfした時に出てくるやつでしょ?
箱のラベルみたいなのだとかなんとか言われた気がする メモリは単純に容量? 別関数で計算した値をmain関数に持ってくる時にポインタを使えばreturnがいらないだとかコピーじゃなくて直接数値を変えるから処理が楽だとか書いてあるけど結局普通に代入するのに比べて利点がよくわからない
- 883 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:10:17.33 ID:mvKDv9Bs0.net]
- タワーマンション
- 884 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:10:41.15 ID:HQZYLHkVa.net]
- 何かの容量と言ったときの「何か」がメモリです。
利点は基本的にないです。
- 885 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:22:11.61 ID:0e3y3dPM0.net]
- データが存在する場所
- 886 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:44:19.75 ID:VQ1VjdQ1M.net]
- みんな思い思いのモデルで遊んでるから、パパは箱モデル出しちゃうぞ
- 887 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:45:29.38 ID:vVgcrwZV0.net]
- うさみみハリケーンでメモリ覗いてチートしよう!
- 888 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:52:15.32 ID:o6WQvi940.net]
- 天使のような微笑みに
時は立ち止まる
- 889 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 22:05:37.40 ID:mXxRrk+K0.net]
- なんか分からない部分のコード示してもらわないと
ここの有能な人たちもどう説明したらいいか分かんないから雑談始まったがw
- 890 名前:蟻人間 mailto:sage [2019/06/13(木) 22:14:30.76 ID:wtG0GGqp0.net]
- 1ビットが0か1かの二通りを表せる情報量。
1バイトは0〜255までの256通り(2の8乗)を表せる情報量で8ビットに等しい。 1バイトを複数並べたのがメモリーで、各バイトの位置がアドレス。
- 891 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 22:16:01.81 ID:dMX2AWSU0.net]
- このスレにエスパーいるの?
- 892 名前:蟻人間 mailto:sage [2019/06/13(木) 22:22:12.70 ID:wtG0GGqp0.net]
- アドレスに型情報を加えて、先頭アドレスを起点として配列のようにアクセス可能にしたものがポインタ。
しかし、配列は実体を要求するが、ポインタは実体を要求しない。ヌルポインタは、何も指し示さないポインタ。
- 893 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 22:29:06.28 ID:o6WQvi940.net]
- ポインタ配列ってやると実体のない配列になるのかなw
- 894 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 00:57:04.32 ID:v+vUDnm40.net]
- ポインタ配列
- 895 名前:?
ポインタの配列 *array[] 配列のポインタ (*array)[] [] - [ここ壊れてます]
- 896 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 06:12:05.65 ID:hJXFGwRg0.net]
- “メモリ”って言葉がフラッシュメモリのような、
ストレージデバイスのイメージになってるのも 説明を難しくしてる要因かもしれないね。 メモリは記憶単位ごとに数字で番地が振られていて…と言っても、 「メモリってディレクトリ構造中のファイルとして記憶するんじゃないの?」 みたいな感じに、互いの言葉の意味がチグハグで。
- 897 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 06:41:21.97 ID:f7k/n5Cq0.net]
- RAMとROMの違いなんて今の時代説明しても分かる人の方が少ない気がする
- 898 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 07:27:48.00 ID:Q6PAXFreM.net]
- >メモリは記憶単位ごとに数字で番地が振られていて
キャッシュメモリ「せやろか?」
- 899 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 07:30:51.51 ID:0tg6L2nj0.net]
- https://i.ytimg.com/vi/paQ3zIsz1-8/maxresdefault.jpg
https://upload.wikimedia.org/wikipedia/commons/d/d2/Pamiec_bebnowa_1.jpg やっぱりコレを見せれば理解しやすいんでね?
- 900 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 08:11:51.98 ID:9CL7rguOx.net]
- >>872
磁気コアメモリと、右側はRAMACか?
- 901 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 08:31:34.65 ID:0nKPup2VM.net]
- 磁気ドラムだよ
ランダムアクセスでさえないのにメインメモリにしたとかいう
- 902 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 09:02:07.63 ID:vN7LRDhO0.net]
- >>856
ポインタ=君と感覚を共有してる全く同性能の影分身だ。 君の価値が100万なら、影分身は1円で作れる。 ポインタのメリットは会社が君を働かせたい時、君を直接雇うと100万円かかるが、影分身を雇うと1円で済むわけだ。 影分身が働いてる間、君は家でエロゲでもしてればいい。 気をつけないといけないのは、仕事中、影分身の腕が切断されたら、エロゲやってる君の腕も切断されるし 影分身が死んだら君も死ぬ。 これ以上わかりやすい説明はないと思うが、どうよ?w
- 903 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 09:44:07.68 ID:y8r4DOsw0.net]
- 例えられても伝わらないとさらに混乱させるのが、ポインタと配列周辺の話
- 904 名前:デフォルトの名無しさん [2019/06/14(金) 10:03:42.87 ID:+nXqXsIga.net]
- >>875
分身と言ってしまうとそっくりな実体がもう一つあるかのように思ってしまうのではないか? やはり実体を指し示すものを連想させる何かにした方が良いのではないか?道標とか。
- 905 名前:デフォルトの名無しさん [2019/06/14(金) 10:26:13.82 ID:6se/aPBa0.net]
- このように、どうわかりやすく書こうとしてもどっかに不都合が生じるのがポインタの説明
素直にコンピュータの仕組みを勉強するしかないんや・・・
- 906 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 10:36:21.57 ID:9CL7rguOx.net]
- ポインタはWindowsのショートカットみたいなもの。
これでもまだ誤解されそうね。
- 907 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 11:45:14.96 ID:suWeiIcg0.net]
- インデックスレジスタを拡張したもの
- 908 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 12:26:01.65 ID:2kFHhEHgd.net]
- キャッシュとバッファの違いを教えてください
- 909 名前:蟻人間 mailto:sage [2019/06/14(金) 12:32:55.71 ID:lQGpZUNAd.net]
- キャッシュは次回のアクセスを高速化するためにデータを一時的に保存しておくこと。
バッファはデータを受け止めるために、保存場所を確保するためのメモリー領域。
- 910 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 14:56:26.65 ID:6Rxhp4270.net]
- アセンブラやらせてみる。
- 911 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 15:05:09.54 ID:AQvHkPsD0.net]
- >>881
文脈による 汎用機
- 912 名前:だと二次キャッシュをバッファストレージなんて言ったりすることもあるし []
- [ここ壊れてます]
- 913 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 17:36:32.38 ID:TPMloxQtM.net]
- >>875
本体がパンツ下ろしたら影分身も職場でパンツ下ろすんですね分かります
- 914 名前:デフォルトの名無しさん [2019/06/14(金) 17:45:59.79 ID:zWOLB0k60.net]
- ポインタがよくわからないんだけど、普通にメモリアドレス==ポインタって認識なの?
int i; int *p=&i; の時に変数iのポインタであるpっていういい方は正しいですか
- 915 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 17:52:24.52 ID:f7k/n5Cq0.net]
- メモリアドレスは格納されるけど
メモリアドレス==ポインタっていうのは違う気がする nullだのvoidだのもあるし
- 916 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 17:58:41.54 ID:Soq0+PVxa.net]
- iのポインタを格納してるポインタ変数p
値自体を問題にするときはアドレスだが、プログラム中で操作の対象となってる場合はポインタって感じだな。
- 917 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:21:37.60 ID:Js4PARtC0.net]
- >>886
ポインタはメモリアドレスと型もってて メモリアドレスからのデータをその型として解釈する
- 918 名前:デフォルトの名無しさん [2019/06/14(金) 18:23:47.92 ID:zWOLB0k60.net]
- なるほど、なんとなくわかったありがとう。混乱の原因はポインタっていう言葉がいろんな使われ方してるからだった。
- 919 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:25:31.19 ID:Kaq8zorwa.net]
- こう書くとまた荒れそうだが、ポインターとはアドレスが入った変数である、というのは正しい。
NULLは0番地を特別扱いしてるだけだし、void *もあくまでアドレスだ。
- 920 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:32:50.01 ID:N06YB3IUM.net]
- >>887
nullはまだしもvoidは関係なくね?
- 921 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:34:58.75 ID:Js4PARtC0.net]
- 荒れる要素なくない?
メモリアドレスを保持する整数と型を組合せてあるだけだし void*はアドレス保持するだけの変数って意味じゃないの
- 922 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:35:21.76 ID:6z9b86iK0.net]
- void *p;
p++ を許すのは GCC拡張だっけか
- 923 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:37:46.52 ID:AQvHkPsD0.net]
- >>891
「正しい」とか書くと荒れる元にしかならん (初心者のうちは)…「という理解でいい」ぐらいにしとき
- 924 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:39:36.73 ID:BA+tS0rQa.net]
- >>891
NULLの件はそれ逆だろう。 実際の0番地を特別扱いにしているのではなく、「どこも指さない特殊なアドレス」を表記するために整数0を使用しているだけで、0番地が特別な訳ではないはず。まあ実際にメモリ割り当てで0番地を割り当てることはしないだろうけど。 void*も、型を指定しないポインタを表すのに使っている型の指定であり、アドレスというのはおかしい。
- 925 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:45:34.86 ID:Js4PARtC0.net]
- >>894
サイズどういう扱いなのそれ
- 926 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:48:29.67 ID:6z9b86iK0.net]
- >>897
確かポインタ演算時は1バイト (char) 扱いだったかな?
- 927 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:52:58.09 ID:Js4PARtC0.net]
- 1バイトなんか
まあそりゃそうか
- 928 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 21:41:25.35 ID:WbpzR08B0.net]
- void*なんていらなくね?char*でいいじゃん
構造のわからないものは「バイト列」って意識でしょ?
- 929 名前:蟻人間 mailto:sage [2019/06/14(金) 21:47:11.03 ID:Qn7Uv1x90.net]
- >>900
void *がないとmemcpyに引数を渡すとき面倒。
- 930 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 21:51:26.70 ID:6z9b86iK0.net]
- double * には double * だけを許し char * や strucut foo * を渡したらアカンと
要求される型を厳しくチェックしようとすると 「ポインタだったら実体の型は何でもいい」 という指示を char * に含ますわけにはいかない
|

|